Что делает установка встроенного содержимого в Swift Code в Xcode 6?

Это новый параметр в разделе "Параметры сборки". Что оно делает? Кажется, я не могу найти документацию об этом. Я предполагаю следующее: нужно ли его устанавливать в YES в смешанном приложении Objective-C/Swift, чтобы сообщить Xcode о связи со Быстротой Runtime?

Ответ 1

Для связи нет необходимости. Этот параметр предназначен только для тех случаев, когда у вас есть чистая цель Objective-C, которая зависит от цели с смешанным источником или чистой Swift.

Описание:

Включите этот параметр, чтобы указать, что контент, встроенный в целевой продукт, содержит код Swift, так что стандартные библиотеки Swift могут быть включены в продукт.

Также в примечании к выпуску Beta 7:

Шаг сборки, который встраивает стандартные библиотеки Swift в пакет, теперь выполняется только для и только в том случае, если приложение само по себе не зависит от каких-либо встроенных содержит исходные файлы Swift. При создании приложения, которое само не содержит Быстрые исходные файлы, но включает в себя другой контент, такой как фреймворки, службы XPC, расширения приложений, и т.д., которые содержат код Swift, вы должны установить параметр сборки "Встроенный контент содержит Swift Code" (EMBEDDED_CONTENT_CONTAINS_SWIFT). Таким образом, библиотеки Swift будут быть включенным в приложение.

Привет

Ответ 2

Согласно Внедрение содержимого с помощью Swift в Objective-C

Стандартные библиотеки Swift копируются в пакет, если и только если вы создаете приложение, и это приложение содержит исходные файлы Swift самостоятельно

Если вы создаете приложение, которое не использует Swift, но включает контент, такой как фреймворк, который делает, Xcode не будет включать эти библиотеки в ваше приложение. В результате ваше приложение выйдет из строя при запуске

Чтобы устранить эту проблему, установите для встроенного содержимого содержимое Swift Code (EMBEDDED_CONTENT_CONTAINS_SWIFT) значение YES. Этот параметр сборки, который указывает, содержит ли целевой продукт встроенное содержимое с кодом Swift, сообщает Xcode о включении стандартных библиотек Swift в ваше приложение, когда установлено значение YES

Ответ 3

Я не считаю, что требуется общая совместимость между Swift и Objective-C. Это так же просто, как добавление кода Swift и редактирование заголовка моста.

Если вы видите какую-либо документацию о расширениях для iOS, в лингво упоминается "встроенный" довольно много: встроенный контент, встроенные фреймворки и т.д. Поскольку расширения организованы, построены и работают совсем по-другому, чем обычные приложения, я бы Не удивляйся тому, что существует такая установка, как эта, относящаяся к ним.