• Wieder einmal haben uns unsere Apfeltalker tolle Fotos zur Abstimmung eingesandt. Welches ist Euer Favorit? Stimmt mit ab! Hier geht es zur Abstimmung --> Klick
  • Es ist bereits Apfeltalk-Tradition und wir möchten sie auch in diesem Jahr fortsetzen: Unser Apfeltalk-Weihnachtslogo-Wettbewerb hat begonnen! Gestaltet für uns das Weihnachtsbanner, das im Monat Dezember bis zum Weihnachtsfest unsere Webseite schmücken soll. Lasst Eurer Kreativität freien Lauf! Hier geht es zum Wettbewerb --> Klick

Objective C lernen... gleich mit ARC und Storyboard ?

Bullz

Querina
Registriert
19.07.10
Beiträge
187
hallo folgendes Problem tritt jetzt beim einlernen für mich auf...ich muss mich entscheiden ob ich mir die Erleichterung mit ARC und Storyboards gleich anlerne oder doch noch im old School Weg folge mit Referenz Counting und XIB NIB Files..

Mir geht es hier vor allem um die Abwärts Kompatibilität.Meines Wissens muss ein Gerät mindestens über ios 5.0 Verfügen um Storyboards zu unterstützen.ARC wurde zwar mit IOS 5 angeführt...

laut meinem Buch " Apps entwickeln für Iphone und Ipad " soll dies aber " laut apple " bis 4.0 zurück funktionieren. Jetzt gab es ja noch dazu diese Änderung das ARMv6 von xcode nicht mehr unterstützt werden. Also iphone 3g und ipod Pendant... Diese hingen bei 4.2.1 meines Wissens ...

Wenn ich jetzt vorhätte einen großen Käuferkreis anzusprechen irgendwann mal etwas in den Appstore reinzustellen wäre es nicht sinnvoller auf den Schnickschnacks zu verzichten und die Abwärts Kompatibilität zu erhalten ? Ich meine da draußen sind paar Millionen Iphones 2 und 3g ...oder iphones 3gs + die nie über 5.0 aktualisiert wurden.

Xcode kann man sich die alte 4.4.1 als Zweitinstallation am Rechner lassen ... also das ist kein unüberwindbares Hindernis... Ihr versteht jetzt sicher was ich meine... um die Frage zu komprimieren .. Xcode 4.4 behalten Xib nib Files und ARC aus oder gleich Xcode 4.5 ARC ein und jedes Projekt das ich je erstellen werde mit Storyboard Designen was heisst das unter 5.0 nix geht. Ohne Storyboard mit ARC könnte ich wenigstens ( falls das stimmt ) die Kompatibilität bis 4.0 halten ...
 
ich muss mich entscheiden ob ich mir die Erleichterung mit ARC und Storyboards gleich anlerne

Da gibt's nicht viel zu entscheiden: Klares "Ja".

Mir geht es hier vor allem um die Abwärts Kompatibilität.Meines Wissens muss ein Gerät mindestens über ios 5.0 Verfügen um Storyboards zu unterstützen.ARC wurde zwar mit IOS 5 angeführt...

Stimmt.

laut meinem Buch " Apps entwickeln für Iphone und Ipad " soll dies aber " laut apple " bis 4.0 zurück funktionieren.

ARC: Ja. Storyboards nur, wenn auf alle iOS 5.x Funktionen verzichtet wird und das wird schwierig.

Wenn ich jetzt vorhätte einen großen Käuferkreis anzusprechen irgendwann mal etwas in den Appstore reinzustellen wäre es nicht sinnvoller auf den Schnickschnacks zu verzichten und die Abwärts Kompatibilität zu erhalten ?

Klar. Der Zusatzaufwand ist allerdings erheblich, also solltest du ehrlich bewerten, wie wahrscheinlich und umsatzstark der pre-iOS 5 Markt fuer deine App ist. Das kann keiner ausser dir bewerten. Wenn du noch nicht mal Objective-C sprichst... und dann vmtl. auch keine Ahnung von Cocoa hast... ist das ein ziemlich ambitioniertes Unterfangen. Mit iOS hat sich unter der Haube gewaltig was veraendert und wenn du abwaertskompatibel bleiben willst stehen dir auch viele iOS 5 Funktionalitaeten zusaetzlich zum erheblich groesseren Programmier- und vor allem Debug-Aufwand nicht zur Verfuegung.

Xcode kann man sich die alte 4.4.1 als Zweitinstallation am Rechner lassen ... also das ist kein unüberwindbares Hindernis...

Unueberwindbar nicht, ich hab' auch noch eine 3.x Installation parallel, aber seit 4.3 ist es nicht mehr so ganz trivial die Versionen parallel zu betreiben, Ein bisschen Terminalakrobatik ist da schon notwendig.

Xcode 4.4 behalten Xib nib Files und ARC aus oder gleich Xcode 4.5 ARC ein und jedes Projekt das ich je erstellen werde mit Storyboard Designen was heisst das unter 5.0 nix geht.

Du solltest dich vielleicht erst mal etwas naeher mit der Materie beschaeftigen. Z.B. schaffen Storyboards XIB und NIB Dateien nicht ab. Auch den IB gibt's nach wie vor und manche GUI-Funktionen lassen sich mit Storyboards gar nicht realisieren. Aber als (blutiger?) Anfaenger tut man sich sicherlich keinen Gefallen, ohne ARC anzufangen. Wenn man damit erst mal eine App in den Store gebracht hat, hat man die ARC-getter und -setter eh' schon hundertmal ueberladen muessen und dann damit eine ziemlich gute Idee, was das fuer ein Aufwand ist, die App auf reference counting umzustellen. Dann kannst du die Abwaertskompatibilitiaet ja immer noch 'rein bringen und dann ggf. das naechste Projekt direkt so gestalten.
 
Aber als (blutiger?) Anfaenger tut man sich sicherlich keinen Gefallen, ohne ARC anzufangen.
Man tut sich aber auch keinen Gefallen anzunehmen, mit ARC bräuchte man über das Thema Speicherverwaltung nicht mehr nachzudenken. Die Regeln sollte man trotzdem beherrschen. Ansonsten steht man schnell mit großen, ungläubigen Augen vor seinem Code und versteht nicht, warum der nicht das tut was man wollte.

Wenn man damit erst mal eine App in den Store gebracht hat, hat man die ARC-getter und -setter eh' schon hundertmal ueberladen muessen
Was sind denn das für Dinger? ARC-getter und -setter?

und dann damit eine ziemlich gute Idee, was das fuer ein Aufwand ist, die App auf reference counting umzustellen.
Öhm, ARC ist nichts anderes, als „Reference Counting“ (Automatic Reference Counting).

Dann kannst du die Abwaertskompatibilitiaet ja immer noch 'rein bringen und dann ggf. das naechste Projekt direkt so gestalten.
Um abwärtskompatibel zu 4.x zu bleiben, muss man ARC nicht ausschalten.

MacApple
 
Zuletzt bearbeitet:
Man tut sich aber auch keinen Gefallen anzunehmen, mit ARC bräuchte man über das Thema Speicherverwaltung nicht mehr nachzudenken.

Das ist richtig - aber wo ist der Zusammenhang mit meinem Beitrag?
Öhm, ARC ist nichts anderes, als „Reference Counting“ (Automatic Reference Counting).

Wenn du keinen Unterschied zum nicht-automatischen RC siehst, darf ich dann daraus schliessen, dass du mit ARC bisher nicht programmiert hast? Oder war das jetzt einfach nur die Sorge, dass ich nicht weiss, was ARC bedeutet?

Um abwärtskompatibel zu 4.x zu bleiben, muss man ARC nicht ausschalten.

Stimmt. Da das aber genau so bereits im OP steht, frage ich mich, was du uns damit sagen willst.
 
Das ist richtig - aber wo ist der Zusammenhang mit meinem Beitrag?
Du meintest, man tut sich keinen Gefallen ohne ARC anzufangen. Warum? Wer ohne ARC anfängt, der lernt die Regeln auf jeden Fall, weil er muss. Anfänger denken gerne, ARC kümmert sich ja um alles, also brauch ich mich ums Speichermanagement nicht kümmern und bumm, schon kracht es.

Wenn du keinen Unterschied zum nicht-automatischen RC siehst,
Ich sehe da schon einen Unterschied.

darf ich dann daraus schliessen, dass du mit ARC bisher nicht programmiert hast?
Nein, ich nutze auch ARC.

Oder war das jetzt einfach nur die Sorge, dass ich nicht weiss, was ARC bedeutet?
Ja, die Sorge hatte ich. Du sprachst von „ARC-settern und -gettern“ (was das sein soll hast Du noch nicht verraten und warum muss man die hundertmal überladen) und von der Umstellung auf „reference counting“. Da ARC bereits „reference counting“ ist, weiß ich nicht, was du mit der Umstellung auf „reference counting“ sagen willst. Wenn Du die Umstellung auf

Manual Reference Counting (MRC, sometimes referred to as MRR for “manual retain/release”)

meinst, solltest Du das auch so schreiben.

Stimmt. Da das aber genau so bereits im OP steht, frage ich mich, was du uns damit sagen willst.
Im letzten Absatz fand ich es zumindest missverständlich formuliert.

MacApple
 
Meiner Meinung nach: Ohne ARC und Storyboards anfangen und sich dann später damit beschäftigen. Dabei geht es mir primär nicht darum ob die App unter iOS 4 läuft oder nicht. Bloß es kann nicht schaden die Grundlagen der Speicherverwaltung unter iOS zu kennen.

Mit ARC umschifft man die Probleme nur teilweise und macht wenn man Objective-C wirklich lernen will wenig Sinn.

Hier geht es schließlich um einen Anfänger und nicht um ein neues Projekt eines erfahrenen Entwicklers.