В принятом ответе на заданный вами вопрос упоминается следующее:
Следовательно, на iOS ваш единственный вариант - в основном использовать данные c библиотека или структура stati c (основное отличие состоит в том, что платформа stati c чаще всего распространяется как скомпилированный файл .a, тогда как библиотека stati c может быть просто включена как подпроект - вы можете видеть весь код, который компилируется первым, и его результирующий файл .a используется проектом в качестве зависимости).
Таким образом, основное отличие от iOS на самом деле в том, что обычно фреймворк используется в скомпилированная форма, тогда как библиотека используется в качестве кода. Поэтому оба поддерживают в принципе инверсия управления.
Однако , даже если библиотека может предоставить все, что может сделать фреймворк, следует окончательно ограничить определенные функциональные возможности фреймворками. Wiki говорит :
Фреймворки имеют ключевые отличительные особенности, которые отделяют их от обычных библиотек:
• инверсия управления: в среде, в отличие от библиотек или в стандартных пользовательских приложениях общий поток управления программой диктуется не вызывающей стороной, а платформой.
• расширяемость: пользователь может расширять платформу - обычно путем выборочного переопределения - или программисты могут добавлять специализированный пользовательский код, чтобы предоставить конкретную информацию. c функциональность.
• немодифицируемый код фреймворка: код фреймворка, как правило, не должен изменяться при принятии пользовательских расширений. Другими словами, пользователи могут расширять инфраструктуру, но не могут изменять ее код.