2009-02-26 32 views

Respuesta

-1

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.

+1

CocoaTouch tiene recuento de referencias para la memoria. Cocoa tiene un recolector de basura opcional, pero solo para Mac OS X> = 10.5 –

+2

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

1

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

8

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.

+0

Cocoa tiene NSViewController ahora, por lo que no es realmente una diferencia. – Chuck

+0

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

+0

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

6

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)

3

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.

+1

Bueno, duh, dudo que el póster original no lo supiera. – tml

Cuestiones relacionadas