Frage

Als ziemlich erfahrener PHP-Entwickler und ein faires Wissen über C (schrieb ein verteiltes Computing-Experiment mit 16 der NEC-Mikrocontroller meines Vaters), möchte ich den Wechsel zu Objective-C und Kakao machen, um schließlich den Mac zu integrieren / iPhone -Apps mit einigen meiner PHP -Projekte.

Wenn ich das Buch "Cocoa -Programmierung für Mac OS X" von Arron Hiilegass durchgehe, werde ich ein wenig frustriert. Ich kann die Beispiele bearbeiten, aber er erklärt nicht genau warum Er verwendet eine Klasse auf diese Weise (nsnumber anstelle von int oder doppelt beispielsweise).

Ich suche zuerst nach einem guten Buch/Bücher, um das Ziel zu sehen. Meine Frage ist, was wäre ein gutes Buch? Ich betrachte "Programmierung in Objective-C 2.0" und es sieht ziemlich anständig aus. Wohin würde ich von dort gehen? Ich denke, ich sollte dann in meinem Kakao-Buch erneut starten.

Gibt es auch Ressourcen im Internet, die beim Übergang von PHP zu Objective-C helfen würden? Ich weiß, dass PHP eine locker-typische Skriptsprache ist, also hat sie seine Unterschiede. Es gibt einige Dinge, die mit OBJ-C und Kakao einfach keinen Sinn ergeben. Warum kann ich nicht Ganzzahlen in ein NSMutablearray einsetzen?

Wie auch immer. Danke für die Hilfe! (Ich bin erst 14, also mach mich leicht, wenn ich Fehler in meinem Q gemacht habe.)

War es hilfreich?

Lösung

Ich habe gerade selbst "Programmierung in Objective-C 2.0" durchlaufen, und es ist ziemlich gut. Ich würde es empfehlen, besonders wenn Sie C C noch nie benutzt haben (oder wenn Sie es vergessen haben, wie ich).

Apple hat jedoch wirklich eine hervorragende Dokumentation. Wenn es Ihnen nichts ausmacht, online zu lesen, würde ich mit ihren beginnen Erste Schritte mit Kakao Seite.

Andere Tipps

Ich kann die Beispiele bearbeiten, aber er erklärt nicht genau, warum er eine Klasse auf diese Weise verwendet (nsnumber anstelle von int oder doppelt beispielsweise) ...

Es gibt einige Dinge, die mit OBJ-C und Kakao einfach keinen Sinn ergeben. Warum kann ich nicht Ganzzahlen in ein NSMutablearray einsetzen?

NSNumber ist ein viel nützlicherer Typ als ein primitiver Typ wie int oder double, da es oft in Verbindung mit anderen Objekten verwendet wird, auf die Sie im Programm in Kakao programmieren werden.

Zum Beispiel, um eine Zahl als Wert in ein setzbares Array zu packen (wie ein NSMutableArray) oder ein assoziatives Array (eine Instanz von NSDictionary), Sie müssen die Zahl primitiv drehen (int, double, usw.) in a Serialisierbar, oder ein archiviviertes Objekt - ein NSNumber.

Primitive können nicht serialisiert werden, im Gegensatz zu einer NSNumber, weil Primitive nicht in der Grundgruppe der "Core Foundation" -Typen sind (NSNumber, NSArray, NSString, usw.) dass Apple hart gearbeitet hat, um Ihnen zur Verfügung zu stellen.

Auch durch Verwendung NSNumber Sie erhalten außerdem kostenlos viele Bonus -Komfortmethoden: Sie können die Nummer schnell in eine Zeichenfolge umwandeln, indem Sie einfach eingeben [myNumber stringValue].

Oder wenn Sie Ihre behandeln NSNumber Als Preis für etwas ("$ 1,23") können Sie eine beantragen NSNumberFormatter Um sicherzustellen, dass Operationen auf der Anzahl Ergebnisse liefern, die das von Ihnen erwartete Format haben (z. B. wenn Sie zwei Preiswerte hinzufügen, würden Sie erwarten, dass Sie einen Währungswert als Gegenleistung erhalten).

Das heißt nicht, dass Sie nicht verwenden können oder sollten nicht. int oder double Variablen. Aber in vielen Fällen finden Sie eine NSNumber ist eine bessere Option, da Sie weniger Code schreiben und eine Menge Funktionen für "kostenlos" erhalten können.

Nach meiner Erfahrung habe ich festgestellt, dass die Internet-Dokumente hilfreich genug sind, um OBJ-C und Cocoatouch zu lernen. Mein Fortschritt verlief ungefähr so:

1) Sehen Sie sich die Apple Dev -Videos bei iTunes an (sie sind kostenlos).

2) Lesen Einstieg, iPhone Application Programming Guide.

3) Lesen OOP in OBJ-C.

4) Lesen Sie mehr: Kakao -Grundlagen, Objektiv-C-Primer, Kakaopraktiken.

5) Machen Sie einige einfache Tutorials.

IMO: Alle Informationen, die Sie benötigen, finden Sie auf der Apple Dev: iPhone -Site. Sparen Sie Ihr Geld und kaufen Sie keine Bücher. Wenn Sie nicht verstehen, warum in einem der Führer oder Tutorials etwas getan wird, verweisen Sie sofort mit anderen Quellen von Google.

Sie müssen bedenken, dass die Lernkurve hier ist ziemlich groß. Es war für mich und ich studiere jeden Tag im College solche Dinge. Also, bleib dabei und liest auf eine kluge Weise (überflüssige Sachen, die du kennst). Was ich in mir selbst sehe, ist, wenn ich verstehe, wie das iPhone funktioniert und den Datenfluss kennt, dann ist die Programmierung dafür hauptsächlich ein Syntaxproblem.

PHP unterscheidet sich sehr von Objective-C. Darüber hinaus unterscheidet sich die Art und Weise, wie Programmierprobleme im PHP im Kontext des Internets gelöst werden, stark von der Art und Weise, wie Programmierprobleme in OBJ-C im Kontext des iPhone gelöst werden. Aus diesem Grund möchten Sie sich dem iPhone aus einer neuen Perspektive und als Student/Lernender nähern. Nehmen Sie sich Zeit und konzentrieren Sie sich auf objektorientierte Programmierung und Best Practices. Dies wird dich für die kommenden Jahre segnen.

-Büffel

Auch um Ihre Fragen zu beantworten:

Objective-C ist eine objektorientierte Sprache, die als Erweiterung über C erstellt wurde.

Als solches liefert es sowohl primitive Typen (wie int und doppelt) als auch Objekte.

NSNumber ist eine objektive C-Klasse, die eine Zahl plus eine Reihe von Operationen auf dieser Zahl (Methoden) darstellt. Der Vorteil der Verwendung eines NsNumbers gegenüber einem numerischen primitiven Typ besteht darin, dass er objektorientiert verwendet werden kann (Sie können Nachrichten an sie senden, Sie können seine Funktionalität mit "Protokollen" ausdehnen. Es in einer Methode, die ein Objekt usw. erwartet).

Was NSMutablearray betrifft, so ist dies eine Klasse, die Array-ähnliche Funktionen bietet. Es ist so konzipiert, dass es mit Objekt-C-Objekttypen funktioniert (es ist ein Container von Objekten und Objekten von NSObject-Typen, die von ihnen erben). Dies ist der Grund, warum es keine Ganzzahl enthalten kann. Es kann jedoch einen Nsinteger enthalten, der eine Objektiv-C-Klasse ist, die eine Ganzzahl darstellt.

Ich würde persönlich versuchen, zuerst Objective-C aus den Apple-Referenzen bei zu lernen http://developer.apple.com/library/mac/navigation/ und von dort aus nach Kakao.

Ich befand mich in einem ähnlichen Boot (PHP bewegte sich zu Objective-C) und fand, dass der beste Prozess darin bestand, in ein Projekt zu springen. Ich habe auch das Hillass -Buch durchlaufen und es war ein guter Anfang, aber der einzige Weg, eine Sprache kennenzulernen, besteht darin, einfach mit einem klaren Ziel durcheinander zu bringen.

Es ist schmerzhaft, aber es funktioniert. Kaffee, Apis und Kleenex.

Bearbeiten: Ich habe gerade den letzten Teil Ihres Beitrags gelesen und gesehen, dass Sie 14 waren. Vielleicht wechseln Sie den Kaffee mit Cola :)

Mein Lieblings-Ziel-C-Tutorial, wenn Sie überhaupt von irgendwohin kommen, ist der iTunesu-Kurs von Stanford on iOS-Programmierung. Der Professor stellt die Dinge wirklich aus den anderen Büchern und Online -Tutorials.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top