2010-10-01 6 views
8

Ich lese gerade Aaron Hillegass Buch "Cocoa Programmieren für Mac OS X", wie es in der gesamten Gemeinde sehr zu empfehlen ist. Ich frage mich, ob es einen extremen Unterschied zwischen "Cocoa Programming" und iPhone-Entwicklung gibt. Ich interessiere mich mehr für die iPhone-Entwicklung, aber ich dachte mir, dass die iPhone-Entwicklung einfacher wäre, wenn ich mit Cocoa zufrieden wäre, bevor ich weitermache.Unterschiede zwischen Cocoa und iPhone Entwicklung

Antwort

6

iPhone-Programmierung ist eine Form von Cocoa (technisch "Cocoa Touch"). Es teilt fast alle die gleichen Programmiersprachen, und es gibt eine große Überlappung in den Frameworks.

Hillegass Buch ist ein guter Ausgangspunkt für beide. Nach etwa Kapitel 7 in Hillegass, werden Sie anfangen, in mehr "Mac" -Themen wie Dokumentenfenster-Verwaltung usw. zu kommen. Nichts davon ist schlecht zu verstehen, aber das ist, wo es sich in den Details unterscheidet, und Sie werden es finden wird nicht so direkt übersetzen.

Die Muster, die er Ihnen zum Nachdenken beibringt, sind in allen Fällen nützlich. Aber die tatsächlichen Klassen und Objekte, die Sie für das Mac-Zeug verwenden, haben nicht alle Äquivalenzen in der iPhone-Welt. Unter iOS unterscheidet sich die Ansichtsverwaltung (UIView) ziemlich von Macs NSView-Elementen. Es ist tatsächlich einfacher und leichter auf dem iPhone zu verstehen, fand ich.

Hillegass hat ein neues iPhone-spezifisches Buch heraus. Ich habe es noch nicht durchgegangen.

+0

Ich wollte nur das gleiche sagen. Das Hilegass-Buch ist großartig, aber nach kurzer Zeit wird es ziemlich Mac-spezifisch. – Phlibbo

+0

Danke. Ich bin in Kapitel 21 o.O ... Ich denke, es gibt nur ungefähr 34 Kapitel, also denke ich, dass ich genauso gut fertig werden könnte. Ich wollte einfach nicht meine Zeit verschwenden, wenn es zwei verschiedene Welten wären. –

2

Der größte Unterschied ist, dass es keine Garbage Collection in iPhone-Programmierung gibt. Sie werden viele Retain- und Release-Aufrufe vornehmen, die in MacOS Cocoa nicht benötigt werden.

Ein zweiter Unterschied ist, dass einige von Apple Klassen anders sind. Im Allgemeinen sind einige der weniger häufig verwendeten Methoden aus den iPhone-Versionen von Klassen verschwunden.

Schließlich haben Sie alle UIKit-Klassen wie UITableView, UITouch usw., die keine Gegenstücke in MacOS haben.

+0

IIRC, Sie müssen explizit Garbage Collection auf OS X aktivieren, und es ist nur seit 10.5 sowieso verfügbar. –

Verwandte Themen