Необходимая структура и статическая библиотека

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

Ответ 1

Рамки выполняют ту же задачу, что и статические и динамические совместно используемые библиотеки, то есть они предоставляют библиотеку подпрограмм, которые могут быть вызваны приложением для выполнения конкретной задачи. Например, инфраструктура Application Kit и Foundation предоставляет программные интерфейсы для классов и методов Cocoa. Рамки предлагают следующие преимущества перед статическими библиотеками и другими типами динамических разделяемых библиотек:

  1. Структура групп связана, но отдельно, вместе. Эта группировка упрощает установку, удаление и поиск этих ресурсов.

  2. Рамки могут включать более широкий спектр типов ресурсов, чем библиотеки. Например, структура может включать любые соответствующие файлы заголовков и документацию.

  3. В один и тот же комплект можно включить несколько версий фреймворка. Это позволяет поддерживать обратную совместимость со старыми программами.

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

Этот отрывок взят отсюда.

Ответ 2

Выдержка из этого.

Каким образом рамки и библиотека отличаются друг от друга?

  • Inversion of Control - ключевая часть, которая делает структуру отличной от библиотеки. Когда мы вызываем метод из библиотеки, мы находимся под контролем, но с фреймворком, который инвертирован, инфраструктура вызывает наш код. (Например, инфраструктура GUI вызывает наш код через обработчики событий)
  • Библиотека - это, по сути, набор функций (четко определенных операций), которые мы можем назвать (организованными в классы). Каждый выполняет некоторую работу, а затем возвращает элемент управления клиенту
  • Рамка воплощает в себе абстрактный дизайн с большим количеством встроенных действий. Чтобы использовать его, нам нужно вставить наше поведение в различные места в рамках либо путем подкласса, либо путем подключения нашего кода. Затем код рамки вызывает наш код в этих точках.
  • Рамку можно также рассматривать как скелет, где приложение определяет мясо операции, заполняя скелет. Скелет все еще имеет код для соединения частей

Ответ 3

Использование динамических фреймворков исключительно для быстрой работы с iOS 8 и более поздних версий, т.е. (Вы не можете отправить сборку с iOS 7 и динамической структурой)

Если вы хотите поддерживать iOS 7 и прежде, чем сможете использовать статическую библиотеку и objc

Динамическая структура и статическая библиотека - это разные вещи, каркас - это набор, в котором у вас есть каталог и может включать ресурсы, представления, классы, а также библиотеки

Статическая библиотека - это только исполняемый код

Также вы используете код в статической библиотеке внутри своего собственного кода, в случае рамки он использует код и обрабатывает способ его запуска и что делает

Эта ссылка может помочь вам http://www.knowstack.com/framework-vs-library-cocoa-ios/