Вопрос

вверх до iOS7, Apple не поддерживала динамическое связывание из-за проблем безопасности. Повторное использование кода между разработчиками обычно полагается на статические библиотеки, которые были построены как часть исполняемого приложения.

Внедрение расширений в iOS8, кажется, немного меняет, потому что расширения - это отдельные исполняемые файлы. Сообщение кода между расширением и его содержащим приложение осуществляется через рамки. Apple говорит об этом в своих заметках выпуска:

Frameworks для iOS. Разработчики iOS теперь могут создавать dynamic frameworks. Рамки являются коллекцией кода и ресурсов для инкапсуляции Функциональность, которая ценна для нескольких проектов. Рамотки отлично работать с расширениями, обмена логикой, которая может быть использована обоими Основное приложение и влагаемые расширения.

акцент мой.

Источник: https://developer.apple.com/library/content/documentation/xcode/Coneptual/whatsnewxcode-Чагазины /artics/xcode_6_0.html#//apple_ref/doc/uid/tp40014509-sw14

Далее, в руководстве по расширению Dev, они объясняют, что вы можете поделиться кодом между расширением и содержащим приложение через «встроенную структуру».

Источник: https://developer.apple.com/library/content/Documentation/general/Coneptual/extensibilypg/extensionscenarios.html#//apple_ref/doc/uid/tp40014214-Ch21-sw1

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

Это было полезно?

Решение

«Встроенные» и «Динамические» рамки не относятся к одному и тому же аспекту структуры.Они не являются противоположностью друг друга.Во-первых, давайте определим, что такое каркас: в Apple Lingo, каркас относится к некоторому скомпилированному коду + общедоступные заголовки указанного кода.

    .
  • Теперь структура Dynamic - это каркас, код которой был построен как динамическая библиотека.Это противоположность «статической» рамки, где код будет построен как статическая библиотека.В случае, если вам интересно, Wikipedia имеет Очень приятное объяснение каково разницу между статической и динамической библиотекой.

  • и, наконец, ander angstraded - это рамка, которая упакована в приложении, в отличие от установленной системы, например, в «/ системе / библиотеке / каркасах».

Другие советы

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

Динамические рамки не означает динамически связанные рамки . Приложения все еще просто работают в среде песочницы. Это не так, как ваши пользовательские рамки будут установлены с iOS. Каждое из ваших приложений, которые используют общие рамки, которые вы разработали, собираются скопировать внутри каждого пакета приложения.

Вы можете увидеть это для себя. Перейдите в каталог данных вашего XCode и внутри данных приложения, вы найдете все встроенные рамки, скопированные.

Единственная новая вещь с созданием каркасов с iOS 8 по сравнению с статическими библиотеками состоит в том, что файлы и активы общественного заголовка входят в систему. Если вы занимаетесь такими вещами с более ранними версиями XCode, вы будете запомнить боль при поставке заголовков общего пользования, а затем добавляя путь поиска в настройках Xcode и для активов, которые мы должны были пройти в отдельном пучке.

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

IMO Apple использует слово «динамическое», чтобы предложить «независимую».

Часы WWDC2014 - Строительные современные рамки для более подробной информации.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top