Определение местоположения каталога tmp
Получить ссылку на каталог tmp вашего приложения даже проще, чем найти ссылку на каталог Documents. Для этого воспользуемся функцией NSTemporaryDirectory () из библиотеки Foundation, которая должна вернуть строку, содержащую полный путь к каталогу, предназначенному для хранения временных файлов в вашем приложении. Для того чтобы создать полное имя файла, намеченного для хранения во временном каталоге, сначала отыщем путь к каталогу tmp.
NSString tempPath ■ NSTemporaryDirectory!);
Затем создадим путь к файлу в этом каталоге присоединением имени файла к концу найденного пути к каталогу.
NSString tempFile ■ [tempPath StringByAppendingPathComponent:6"tempFile.txt”);
Стратегии сохранения файлов
Все четыре подхода, которые мы рассмотрим в этой главе, используют файловую систему iOS.
При использовании механизма SQLite3 вы создадите один файл базы данных SQLite3, и потом пусть она беспокоится о сохранении и поиске ваших данных. В самой простой форме подсистема Core Data берет на себя заботу об управлении файловой системой за вас. Что касается двух остальных механизмов — списков свойств и архивирования, — то в этом случае вам сначала придется решить, как именно вы собираетесь хранить данные: в одном файле или в нескольких.
Однофайловая персистентность
Использование одного файла — самый простой вариант, и для многих приложений он вполне приемлем. Вы начинаете с создания корневого объекта, обычно это объект типа NSArray или NSDictionary (при использовании архивирования ваш корневой объект может также базироваться на некотором пользовательском классе). Затем "заселяете" свой корневой объект всеми данными, для которых необходимо обеспечить персистентность. Всякий раз, когда вам нужно что-либо сохранить, ваш код перезаписывает все содержимое этого корневого объекта в один-единственный файл. При запуске приложение считывает полное содержимое этого файла в память, а по завершении работы — записывает из памяти в файл. Такой подход мы и будем использовать в данной главе.
- Дата: 27-12-2014, 20:37