2015-05-24 2 views
9

Приложение для iOS воспроизводит звуки с AVPlayer. Для этого я должен был напечатать следующее на вершине класса:Связанные рамки и библиотеки в проекте Swift

import AVFoundation 

Я пришел из Objective-C фона, поэтому я пошел в General вкладку проекта Xcode и добавил AVFoundation там, нажав на плюс кнопку под Связанные рамки и библиотеки. В моем проекте появилась желтая панель инструментов. Должен ли я это делать?

Я попытался удалить его из проекта - как с боковой панели, так и в настройках Xcode, мое приложение все еще работает и звучит. Так что import обрабатывает все для вас?

+0

«Импорт», кажется, обрабатывает все (по крайней мере, для библиотек Apple). – nhgrif

ответ

8

Да, import в Swift в основном такая же, как @import в Objective-C (в отличие от #import <…>), который импортировать модули.

Эта новая функция (модули) был введен недавно (? 1-2 года назад) и делает импорт рамки для вас без необходимости явно связать вас приложение с ним: при использовании модулей (@import в ObjC, import в Swift) компилятор увидит имя модуля и свяжет ваше приложение с каркасом неявно и автоматически для вас.

Итак, это новая функция, которой у нас не было в тот день, когда #import были единственным вариантом, и нам пришлось вручную добавлять системные рамки сами.

(Обратите внимание, что модули доступны только для фреймворков Apple до появления iOS8. Но теперь, когда вы создаете свои собственные динамические фреймворки при создании для iOS8, они также доступны для сторонних фреймворков, если они есть module.map)


Если вы заинтересованы, вы можете прочитать больше in the Clang documentation itself. Различные сообщения в блоге также рассказывают о предмете (например, первый результат Google - this blog post)

Смежные вопросы