Пакет

Пакет является каталогом в файловой системе, которой исполняемый код групп и связанные ресурсы, такие как изображения и звучат вместе в одном месте. В iOS и OS X, приложения, платформы, плагины и другие типы программного обеспечения являются пакетами. Пакет является каталогом со стандартизированной иерархической структурой, содержащей исполняемый код и ресурсы, используемые тем кодом. Основа и Базовая Основа включают средства для определения местоположения и загрузки кода и ресурсов в пакетах.

Пакеты приносят несколько преимуществ пользователям и разработчикам. Они упрощают устанавливать или перемещать приложение или другую часть программного обеспечения путем простого перемещения его от одного расположения до другого. Пакеты являются также важным фактором в интернационализации. Вы храните локализованные ресурсы в специально именованных подкаталогах пакета; программируемые средства ищут локализованные ресурсы в расположении, соответствующем предпочтениям языка пользователя.

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

Структура и содержание пакетов

Пакет может содержать исполняемый код, изображения, звуки, файлы пера, частные платформы и библиотеки, плагины, загружаемые пакеты или любой другой тип кода или ресурса. Это также содержит конфигурационный файл во время выполнения, названный информационным списком свойств (Info.plist). Каждый из этих элементов имеет свое надлежащее место в структуре пакета. Ресурсы, такие как изображения, звуки и файлы пера депонированы в Resources подкаталог. Они могут быть или локализованы или нелокализованы. Локализованные файлы (включая строковые файлы, которые являются наборами локализованных строк) помещаются в подкаталоги Resources это имеет расширение lproj и имя, соответствующее языку и возможно локали.

Bundle

Доступ к ресурсам пакета

Каждое приложение имеет основной пакет, который является пакетом, содержащим код приложения. Когда пользователь запускает приложение, оно находит код и ресурсы в основном пакете, что оно сразу нуждается и загружает их в память. После того приложение может динамично (и лениво) код загрузки и ресурсы от основного пакета или подчинять пакеты как требуется.

NSBundle класс и, для процедурного кода, CFBundleRef непрозрачный тип Базовой Основы дает Вашему приложению средние значения для определения местоположения ресурсов в пакете. В Objective C сначала необходимо получить экземпляр NSBundle это соответствует физическому пакету. Для получения основного пакета приложения вызовите метод класса mainBundle.Прочее. NSBundle обратные тракты методов для связывания ресурсов, когда дали имя файла, расширение, и (дополнительно) подкаталог пакета. После того, как у Вас будет путь к ресурсу, можно загрузить его в память с помощью надлежащего класса.

Загружаемые пакеты

Как с комплектами приложений, загружаемым исполняемым кодом пакета пакетов и связанными ресурсами, но Вы явно загружаете эти пакеты во время выполнения. Можно использовать загружаемые пакеты для разработки приложений, которые являются очень модульными, настраиваемыми, и расширяемыми. Каждый загружаемый пакет имеет основной класс, который является точкой входа для пакета; при загрузке пакета необходимо спросить NSBundle для основного класса и использования возвращенный Class объект создать экземпляр класса.

Необходимые как условие статьи

Категорическое обсуждение