Техническое примечание TN2406

Изменения В Контейнерах приложения В iOS 8

Начинаясь в iOS 8, каталоги Documents и Library больше не являются одноуровневыми элементами пакета Вашего приложения. Этот документ описывает, как гарантировать, что Ваше приложение не затронуто этими изменениями.

iOS 8 изменяет местоположения стандартных каталогов, используемых для хранения пользователя и данных приложения (например, Документы, Библиотека). В то время как расположения этих каталогов всегда были подробностью реализации, некоторые приложения неправильно предполагают, что каталоги Documents и Library находятся в том же каталоге как пакет приложения. iOS 8 разделяет данные приложения от комплекта приложений. Код, пытающийся получить путь к каталогам Documents или Library, возвратит недопустимый путь на iOS 8. Попытка получить доступ к этому пути перестанет работать и может завершить Ваше приложение.

Если Ваше приложение или платформа получают доступ к каталогу Documents, каталогу Library или какому-либо из других стандартных каталогов, следуйте рекомендациям, перечисленным при Определении местоположения Стандартных Каталогов при создании URL, или соедините каналом к данным.

Определение местоположения стандартных каталогов
Дополнительные материалы для чтения
История версии документа

Определение местоположения стандартных каталогов

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

Перечисление 1  Используя NSFileManager для получения расположения каталога Documents.

// Returns the URL to the application's Documents directory.
- (NSURL *)applicationDocumentsDirectory
{
    return [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
}

NSFileManager класс обеспечивает -URLsForDirectory:inDomains: и -URLForDirectory:inDomain:appropriateForURL:create:error: методы для получения URL данного стандартного каталога. Обратитесь к значениям, перечисленным под NSSearchPathDirectory в Ссылке Констант Основы для полного списка стандартных каталогов, которые могут быть расположены с помощью этого APIs. Обратите внимание на то, что не все перечисленные значения релевантны на iOS.

В то время как URLs является предпочтительным форматом для ссылки на расположения на диске, Ваше приложение может потребовать пути при взаимодействии через интерфейс с APIs на базе С. Если у Вас есть файловая система URL (т.е.-isFileURL возвращает YES), можно вызвать - путь для извлечения пути из URL. Получающийся путь, как гарантируют, будет совместим с находящимся на пути APIs.

Дополнительные материалы для чтения

Доступ к файлам и каталогам в «руководстве по программированию файловой системы».



История версии документа


ДатаПримечания
28.08.2014

Новый документ, описывающий, как определить местоположение стандартных каталогов в iOS 8.