Actualmente estoy aprendiendo Objective-C y Cocoa. Luego, quiero mantener la programación de iPhone. Conseguiré un libro para eso, por supuesto. Pero me gustaría saber ahora cuáles son las principales diferencias entre Cocoa y Cocoa Touch.¿Cuáles son las principales diferencias entre Cocoa y CocoaTouch?
Respuesta
Según tengo entendido, una de las principales diferencias es que Cocoa tiene su propia versión de Garbage Collection (memoria administrada como .NET), pero cocoaTouch no.
Básicamente son sólo los marcos que están disponibles para usted. Para el desarrollo de escritorio, usaría AppKit y para el desarrollo de iPhone usaría UIKit. UIKit, obviamente, incluye las características multitouch etc.
Al empezar a trabajar en el desarrollo del iPhone, aquí hay un FAQ que puede ser útil: http://www.plaidworld.com/iphonefaq.txt
Editar: Y sí, al igual que el post anterior menciona, a pesar de que el objetivo -C 2.0 está disponible para el desarrollo de iPhone, no hay GC
Los conceptos básicos de Cocoa y Cocoa Touch son similares, ya que hay una jerarquía de vistas y una cadena de respuesta. Sin embargo, la arquitectura UIView está mucho más vinculada a las tecnologías más recientes, como CoreAnimation.
Los tipos de controles disponibles también cambian.
Además, Cocoa touch presenta el concepto de UIViewControllers, que crea una bonita abstracción para poner el código que interactúa con su programa principal y la vista específica que posee. Como señaló Chuck en los comentarios, esto fue agregado en Cocoa en Mac OS X 10.5, por lo que dependiendo de cómo hayas aprendido Cocoa, puedes o no ser consciente de ellos.
Finalmente, como han mencionado otros, Garbage Collection no existe actualmente en el iPhone.
Cocoa tiene NSViewController ahora, por lo que no es realmente una diferencia. – Chuck
Gracias por señalar eso, por alguna razón no fui consciente de eso (probablemente no he hecho el escritorio Cocoa desde que salió el iPhone SDK). – NilObject
Como una actualización tres años después, la recolección de basura nunca existirá en el iPhone, y ahora incluso está desaprobada en la Mac. Sin embargo, Apple ha presentado ARC tanto para iOS como para OS X, que obtiene esencialmente lo mejor de ambos mundos (rendimiento de memoria administrada con simpatía de recogido de basura). – KPM
Para agregar a lo que otros han dicho, gran parte de la base se comparte entre Cocoa Touch y Cocoa. Por ejemplo, las clases de tipos de datos como NSString
y las clases de recopilación como NSArray
son idénticas en ambos marcos. Otras clases como NSURLConnection
son sustancialmente iguales. Otros marcos de alto nivel, como Core Data, por ejemplo, están ausentes de Cocoa Touch.
Además, Cocoa Touch se desarrolló con Objective-C 2.0. Por lo tanto, UIKit, la contraparte del marco Cocoa Touch de AppKit en Cocoa, hace un uso extensivo de las propiedades. En muchos sentidos, Cocoa Touch es más moderno que Cocoa. Cocoa Touch también tiende a utilizar la sintaxis de Objective-C @protocol
en lugar de la sintaxis de la categoría mayor para la implementación de lo que Apple llama "protocolos informales" (es decir, protocolos, donde algunos métodos son opcionales)
Objetivo C es un lenguaje de programación dinámico - un poco como C++ y un poco como Java.
cacao es el marco de aplicación para Mac OS X.
táctil cacao es el marco de aplicación para iPhone y iPod Touch - muy similar al cacao.
Bueno, duh, dudo que el póster original no lo supiera. – tml
- 1. ¿Cuáles son las principales diferencias entre EnhancedPatternLayout y PatternLayout?
- 2. ¿Cuáles son las principales diferencias entre fwrite y write?
- 3. ¿Cuáles son las principales diferencias entre Sinatra y Ramaze?
- 4. ¿Cuáles son las principales diferencias entre Meteor, Ember.js y Backbone.js?
- 5. ¿Cuáles son las principales diferencias entre JavaScript y ActionScript 3?
- 6. ¿Cuáles son las principales diferencias entre StringTemplate y FreeMarker?
- 7. diferencia entre cocoa y cocoatouch
- 8. ¿Cuáles son las diferencias entre $ {} y # {}?
- 9. ¿Cuáles son las mayores diferencias entre fopen y curl?
- 10. Go-Scala-Go! ¿Cuáles son las principales diferencias?
- 11. ¿Cuáles son las diferencias entre PECL y PEAR?
- 12. ¿Cuáles son las diferencias entre HTTP 1.0 y 1.1?
- 13. ¿Cuáles son las diferencias entre PHP y Java?
- 14. ¿Cuáles son las principales diferencias entre las mejoras de CoffeeScript y Dart en JavaScript?
- 15. ¿Cuáles son las principales diferencias entre las API Repa 2 y 3?
- 16. ¿Cuáles son las diferencias entre NSURLConnection y ASI-HTTP-Request?
- 17. Xcode/Cocoa: ¿Cuáles son las diferencias entre las compilaciones de depuración y versión?
- 18. ¿Cuáles son las diferencias de uso entre size_t y off_t?
- 19. Pasar de WPF a Silverlight: ¿Cuáles son las principales diferencias?
- 20. ¿Cuáles son las diferencias y similitudes entre MVC y MVVM?
- 21. ¿Cuáles son las principales diferencias entre HAML, SASS/Brújula y ERB?
- 22. ¿Cuáles son las principales diferencias entre los dialectos sql de mysql y oracle?
- 23. ¿Cuáles son las principales diferencias entre la programación para Windows XP y Vista?
- 24. ¿Cuáles son las principales diferencias entre Emacs Lisp y Common Lisp?
- 25. ¿Cuáles son las principales diferencias entre Rails 1.X y 2.X
- 26. ¿Cuáles son las principales diferencias entre Jetbrains 'MPS y Eclipse Xtext?
- 27. ¿Cuáles son las principales diferencias entre Socialauth, Scribe-Java y Spring Social?
- 28. ¿Cuáles son las diferencias entre osql, isql y sqlcmd?
- 29. ¿Cuáles son las diferencias entre "=" y "<-" en R?
- 30. ¿Cuáles son las diferencias entre Flash Professional y Flash Builder?
CocoaTouch tiene recuento de referencias para la memoria. Cocoa tiene un recolector de basura opcional, pero solo para Mac OS X> = 10.5 –
Ya no. Con OS X 10.8 (Mountain Lion), Apple ha dejado de utilizar la recolección de basura, mientras que ha introducido ARC en ambas plataformas. – KPM