Почему фреймворки связаны как двоичные файлы в Xcode?

Вы вызываете код библиотеки, а код Framework вызывает ваш код.

Я выполнял ряд проектов xcode, которые требовали добавления внешних фреймворков и библиотек.

При их установке всегда был один общий случай, они всегда просили меня перейти на вкладку «Фазы сборки» и «связать двоичный файл с библиотеками».

введите здесь описание изображения

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

Что касается фреймворка, мне гораздо менее ясно, что здесь происходит. Если фреймворк вызывает мой код, почему он предварительно компилируется как двоичный? Если он выполняет мой код во время выполнения, должен ли он просто компилироваться вместе со сборкой?


person Aggressor    schedule 29.01.2015    source источник
comment
Может быть, это [ссылка][1] может вам помочь. [1]: stackoverflow.com/questions/148747/   -  person Rajesh    schedule 29.07.2015


Ответы (1)


Framework — это способ объединения статической/динамической библиотеки и ее заголовков (.h) вместе. Существует также понятие «управление версиями», но оно больше не используется.

Если вы заглянете в Framework (это просто каталог), вы увидите библиотеку (без префикса .a и «lib», заголовков и файла .plist.

person SonicBison    schedule 30.01.2015