40 votes

Quelle est la différence entre Objective-C et Cocoa ?

Je suis en train d'apprendre la programmation Objective-C/Cocoa pour le Mac. Tous les tutoriels, livres, blogs, podcasts, etc. que j'ai utilisés couvrent vraiment les deux ensemble. Existe-t-il un moyen simple de savoir quels éléments sont issus d'Objective-C et lesquels proviennent de Cocoa ?

64voto

Jason Coco Points 52303

Objective-C est le langage... il définit toutes les choses comme les mots-clés pour définir les objets, la syntaxe pour la messagerie d'objets, des choses comme ça.

Cocoa est un cadre de développement (il s'agit en fait d'un cadre général qui regroupe trois autres cadres, Foundation, AppKit et CoreData).

Ces cadres (Cocoa) définissent tous les objets qu'il est agréable d'utiliser et d'interagir avec le système d'exploitation, ainsi qu'un certain nombre de fonctions. Par exemple, Cocoa définit des choses comme NSString et NSObject . Cocoa peut actuellement être utilisé avec d'autres liaisons de langage, comme python ou ruby, et était également utilisé avec Java. Ainsi, si vous utilisiez Cocoa avec Java, vous obtiendriez toujours un message d'erreur NSString mais vous l'appelleriez et l'utiliseriez à partir d'une application Java.

Sans être lié à l'un des frameworks Cocoa, Objective-C n'est livré qu'avec une classe Object très basique comme classe Root prédéfinie.

29voto

igowen Points 491

Objective-C est le langage lui-même.

Cocoa, anciennement NextStep, est l'API et le moteur d'exécution qui se trouve au-dessus d'Obj-C. Tout ce qui commence par NS (pour NextStep) fait partie de Cocoa, et non du langage.

6voto

rkj Points 2478

Bien sûr, c'est assez simple - Objective-C est le langage, Cocoa est l'API/la bibliothèque que vous utilisez pour construire votre application Mac.

4voto

Chuck Points 138930

Regardez dans /usr/include/objc/ - on y trouve du pur Objective-C. Tout le reste est du Cocoa. Vous remarquerez que vous n'utilisez presque jamais rien directement dans ce répertoire.

Toutefois, en pratique, cela ne fait guère de différence. Cocoa est de facto la bibliothèque standard d'Objective-C. La seule plate-forme où Objective-C est utilisé sans Cocoa est la suivante Compilateur d'objets portable et je pense que trois personnes l'utilisent encore.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X