В чем разница между Objective-C и какао? - PullRequest
40 голосов
/ 12 января 2009

Я только изучаю программирование Objective-C / Cocoa для Mac. Все учебники, книги, блоги, подкасты и т. Д., Которыми я пользуюсь, действительно охватывают все вместе. Есть ли простой способ узнать, какие кусочки ванильного Objective-C, а какие из какао?

Ответы [ 4 ]

64 голосов
/ 12 января 2009

Objective-C - это язык ... он определяет все, например, ключевые слова для определения объектов, синтаксис для объекта обмена сообщениями и тому подобное.

Какао - это фреймворк для разработки (на самом деле это зонтичный фреймворк, который объединяет три других фреймворка, Foundation, AppKit и CoreData).

Эти платформы (Какао) определяют все объекты, которые приятно использовать и взаимодействуют с операционной системой, а также ряд функций. Например, Cocoa определяет такие вещи, как NSString и NSObject. В настоящее время какао можно использовать с другими языковыми привязками, такими как python или ruby, а также с Java. Итак, если бы вы использовали Cocoa с Java, вы все равно получили бы объект NSString, но вы бы вызывали и использовали его из приложения Java.

Без привязки к одной из структур Какао Objective-C поставляется только с очень базовым классом Object в качестве предопределенного корневого класса.

29 голосов
/ 12 января 2009

Objective-C - это сам язык.

Какао, ранее NextStep, - это API и среда выполнения, расположенная поверх Obj-C. Все, что начинается с NS (для NextStep), является частью Cocoa, а не частью языка.

6 голосов
/ 12 января 2009

Конечно, это довольно просто - Objective-C - это язык, Cocoa - это API / библиотека, которую вы используете для создания своего Mac App.

4 голосов
/ 12 января 2009

Посмотрите в / usr / include / objc / - там есть чистый Objective-C. Все остальное - Какао. Вы можете заметить, что вы почти никогда ничего не используете напрямую.

Однако на практике это мало что меняет. Какао - это де-факто стандартная библиотека Objective-C. Единственная платформа, где Objective-C используется без какао, - это Portable Object Compiler , и я предполагаю, что, возможно, три человека все еще используют это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...