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
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.
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.
IIRC, Sie müssen explizit Garbage Collection auf OS X aktivieren, und es ist nur seit 10.5 sowieso verfügbar. –
- 1. Unterschiede in der Entwicklung für iPhone und iPad
- 2. iPhone Entwicklung und Jailbreak
- 3. Bash Unterschiede zwischen {} und()?
- 4. Unterschiede zwischen Java und C# und .NET
- 5. iPhone Entwicklung und Tests auf Jalibroken iPhone?
- 6. iPhone Entwicklung
- 7. Unterschiede zwischen traditionellen Paketen com.day.cq.workflow und com.adobe.granite.workflow
- 8. Unterschiede zwischen Dokument und $ Dokument in Angular
- 9. Unterschiede zwischen Go und Cython
- 10. Unterschiede zwischen Mustererkennung und Vereinheitlichung?
- 11. Unterschiede zwischen ActionExecutingContext und HttpActionContext
- 12. Unterschiede zwischen memchr() und strchr()
- 13. Unterschiede zwischen Thread.sleep() und TimeUnit.SECONDS.sleep()
- 14. Unterschiede zwischen Minimalschlüssel und Kandidatenschlüssel?
- 15. Unterschiede zwischen Coroutines und `goto`?
- 16. Unterschiede zwischen Log und Logger?
- 17. Unterschiede zwischen _redirect ('*/* /') und _redirect ('*/*')
- 18. Unterschiede zwischen BaseHttpServer und wsgiref.simple_server
- 19. Unterschiede zwischen schwach und unsafe_unreated
- 20. Unterschiede zwischen RestKit und AFIncrementalStore
- 21. Unterschiede zwischen BasicRenderEngine und LazyRenderEngine?
- 22. Unterschiede zwischen AForge und OpenCV
- 23. Unterschiede zwischen ado und bde
- 24. Unterschiede zwischen OPC und DDS?
- 25. Unterschiede zwischen mousemove und touchnove
- 26. Unterschiede zwischen Boost.Coroutine und Boost.Coroutine2
- 27. Unterschiede zwischen Datenattributen und Methodenattributen
- 28. Unterschiede zwischen char * und String
- 29. Unterschiede zwischen Funktoren und Endofunkern
- 30. Unterschiede zwischen JPA und JPA2
Ich wollte nur das gleiche sagen. Das Hilegass-Buch ist großartig, aber nach kurzer Zeit wird es ziemlich Mac-spezifisch. – Phlibbo
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. –