Что я должен представить, думая о «Библиотеке» в target-c? - PullRequest
0 голосов
/ 20 мая 2009

Для меня библиотека - это набор классов, которые делают полезные вещи. Обычно это может быть полезно во многих проектах. Это также имеет место с точки зрения цели-c? Что именно там находится библиотека? Только классы, которые имеют методы? Или также коллекции функций? И нужно ли их компилировать, чтобы называть их «библиотекой»? Где разделение между «рамками»? Разве это не то же самое?

Ответы [ 2 ]

3 голосов
/ 20 мая 2009

Согласно Википедии : «Фреймворки функционально похожи на разделяемые библиотеки, скомпилированный объект, который можно динамически загружать в адресное пространство программы во время выполнения, но фреймворки добавляют связанные ресурсы, файлы заголовков и документацию. «

Фреймворк - это, по сути, разделяемая библиотека (двоичная, похожая на DLL) в комплекте, которая также включает в себя всю информацию, необходимую для использования этой библиотеки (например, файлы заголовков, документацию, ресурсы по интернационализации и т. Д.). Фреймворк без всего лишнего - это просто библиотека.

Нет требования, чтобы фреймворк был объектно-ориентированным по природе, хотя я предполагаю, что это норма для Какао.

Для Какао концепция каркаса обычно заменяет (усиливает) концепцию библиотеки. Тем не менее, набор инструментов Objective-C не предъявляет таких требований. Вы можете использовать «исходные» «библиотеки» или двоичные библиотеки в стиле Unix (например, файл .so). Я думаю о «библиотеке» в этих общих терминах ... это просто набор полезного кода в исходном или двоичном виде. Фреймворк, с другой стороны, это особая вещь с особым значением для OS X.

2 голосов
/ 20 мая 2009

Предполагая, что вы говорите о библиотеке, которая использует фреймворки Cocoa, а не только о написанной на простом старом языке Objective-C, библиотека (или фреймворк) - это набор классов, которые работают вместе для выполнения определенной задачи. Я не стал бы организовывать инфраструктуру ObjC как набор функций, поскольку это полностью противоречит парадигме языка.

Что касается разницы между библиотекой и фреймворком, это, вероятно, немного субъективно. Для меня библиотека (в контексте вашего вопроса) - это что-то написанное на C, которое, вероятно, более близко напоминает не-OO набор функций. Каркас - это полный пакет классов, как я описал выше. Таким образом, платформа обмена сообщениями в CocoaDev будет представлять собой структуру, тогда как API-интерфейсы sqlite3, к которым вы можете получить доступ на iPhone, будут библиотекой. Опять же, это только я. Другие люди могут интерпретировать термины по-разному.

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