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 ?
Réponses
Trop de publicités?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.
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.