Я просто изучаю программирование Objective-C/Cocoa для Mac. Все учебники, книги, блоги, подкасты и т.д. Я использую действительно обложку обоих. Есть ли простой способ сказать, какие фигуры ваниль Objective-C и которые исходят от Cocoa?
Какая разница между Objective-C и Cocoa?
Ответ 1
Objective-C - это язык... он определяет все такие вещи, как ключевые слова для определения объектов, синтаксис для объекта обмена сообщениями, такие вещи.
Cocoa - это среда разработки (на самом деле это универсальная структура, которая объединяет три другие структуры: Foundation, AppKit и CoreData).
Эти рамки (Cocoa) определяют все объекты, которые приятно использовать и взаимодействуют с операционной системой, а также ряд функций. Например, Cocoa определяет такие вещи, как NSString
и NSObject
. Cocoa теперь может использоваться с другими языковыми связями, такими как python или ruby, и используется также для использования с Java. Итак, если вы использовали Cocoa с Java, вы все равно получили бы объект NSString
, но вы его вызывали и использовали бы в приложении Java.
Без привязки к одной из фреймворков Cocoa Objective-C поставляется с очень простым классом Object в качестве предопределенного корневого класса.
Ответ 2
Objective-C - это сам язык.
Cocoa, ранее NextStep - это API и среда выполнения, которая находится поверх Obj-C. Все, начиная с NS (для NextStep), является частью Cocoa, а не части языка.
Ответ 3
Конечно, это довольно просто - Objective-C - это язык, Cocoa - это API/библиотека, которую вы используете для создания Mac App.
Ответ 4
Посмотрите/usr/include/objc/- в нем есть чистый Objective-C. Все остальное Cocoa. Вы могли заметить, что вы почти никогда ничего не используете прямо там.
Однако на практике это мало чем отличается. Cocoa является фактической Objective-C стандартной библиотекой. Единственной платформой, где Objective-C используется без Cocoa, является Portable Object Compiler, и я предполагаю, что, возможно, трое людей все еще используют это.