Чтение онлайн

на главную - закладки

Жанры

iOS. Приемы программирования

Нахавандипур Вандад

Шрифт:

self.xmlParser = [[NSXMLParser alloc] initWithData: xml];

self.xmlParser.delegate = self;

if ([self.xmlParser parse]){

NSLog(@"The XML is parsed.");

/* self.rootElement сейчас является корневым элементом XML-документа. */

} else{

NSLog(@"Failed to parse the XML");

}

self.window = [[UIWindow alloc] initWithFrame:

[[UIScreen mainScreen] bounds]];

self.window.backgroundColor = [UIColor whiteColor];

[self.window makeKeyAndVisible];

return YES;

}

Теперь

можно использовать свойство rootElement для обхода всей структуры нашего XML-документа.

Глава 12. Управление файлами и каталогами

12.0. Введение

Операционная система iOS основана на MacOS X, которая, в свою очередь, построена на базе операционной системы Unix. В iOS полная структура каталогов остается невидимой для приложения, поскольку каждое приложение, написанное iOS-разработчиком, существует в собственной песочнице. Эта защищенная среда не случайно называется песочницей: она действительно представляет собой жестко ограниченную область, и содержимое каталога песочницы доступно лишь тому приложению, которое владеет ею. У каждого приложения есть собственный каталог-песочница, по умолчанию у таких песочниц есть подкаталоги, к которым могут обращаться приложения.

Когда приложение для iOS устанавливается на устройстве, система создает для этого приложения структуру каталогов (рис. 12.1).

Рис. 12.1. Структура файловой системы в iOS

• Name.app — несмотря на странное название с расширением. app, это каталог. Все содержимое вашего основного пакета оказывается здесь. Например, все пиктограммы приложения, двоичный файл приложения, различные брендинговые изображения, шрифты, звуки и пр. автоматически отправятся в этот каталог, когда система iOS будет устанавливать приложение на устройстве. Name — это имя продукта, которое вы задали для приложения. Итак, если вы назвали приложение MyApp, то его каталог. app будет называться MyApp.app.

• Documents/ — этот каталог является местом назначения для всего контента, создаваемого пользователем. Содержимое, которое заполняется, скачивается или создается вашим приложением, не должно храниться в этом каталоге.

• Library/ — этот каталог используется для хранения кэшированных файлов, пользовательских настроек и т. д. Как правило, он не содержит никаких файлов, а только подкаталоги, в которых уже находятся другие файлы.

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

• Library/Caches/ — в этом каталоге хранится информация, которую ваше приложение позже сможет воссоздать, если возникнет такая необходимость. iOS не выполняет резервного копирования этого каталога. Кроме того, iOS может удалить его содержимое,

если дисковое пространство заканчивается, а ваше приложение в данный момент не работает! Поэтому работа приложения не должна слишком зависеть от этого каталога — будьте готовы к тому, что его содержимое потребуется создавать заново. Повторю: iOS не выполняет резервного копирования информации из этого каталога, так что, когда работа вашего приложения приостановлена, данная информация вполне может быть удалена.

Если работа приложения напрямую зависит от файлов и каталогов, которые должны создаваться на диске, то этот каталог не лучшее место для хранения информации. Такую важную информацию лучше хранить в папке /tmp.

• Library/Preferences/ — как понятно из названия, в этом приложении хранятся настройки, которые приложение должно запоминать и активизировать от запуска к запуску. Мы подробнее поговорим об этом в дальнейшем. iOS выполняет резервное копирование информации из этого каталога.

• Library/Application Support/ — данные, создаваемые вашим приложением (за исключением тех данных, которые создает сам пользователь), должны храниться в этом каталоге. Приятно отметить, что iOS выполняет резервное копирование данного каталога. Возможно, этот каталог не будет создаваться автоматически и вам придется создавать его самостоятельно, если его не существует. О создании этого каталога мы поговорим позже в данной главе.

• tmp/ — это временные файлы, которые ваше приложение может скачивать, создавать и т. д. iOS не выполняет резервного копирования данного каталога. Например, вы можете скачать из Интернета несколько фотографий и сохранить их в каталоге, чтобы повысить производительность вашего приложения, ведь в таком случае эти фотографии не придется скачивать заново при каждом запуске приложения. Каталог служит именно для этой цели. Убедитесь, что в нем не будут храниться документы или файлы, создаваемые пользователем.

Итак, теперь вы знаете, какие каталоги автоматически создаются операционной системой при установке приложения на устройстве с iOS. Далее найдем пути к остальным полезным каталогам, которые мы здесь уже упоминали. Воспользуемся теми API, которые Apple предоставляет специально для этих целей (о таких API пойдет речь в дальнейшем в этой главе).

12.1. Определение пути к самым полезным каталогам на диске

Постановка задачи

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

Программистам требуется использовать API, предоставляемые в iOS SDK, для нахождения путей к каталогам и/или файлам. Иными словами, путь к файлу или каталогу никогда не следует угадывать. Если, например, вы ищете пути, один из которых ведет к каталогу Documents (Документы), то нужно гарантировать, что для этого применяются правильные API. Никогда, ни в коем случае не рассчитывайте на то, что этот каталог будет называться в пакете вашего приложения именно Documents и никак иначе. Для нахождения пути к этому каталогу достаточно воспользоваться подходящими API. Если вас интересует не сам каталог, а отдельные содержащиеся в нем файлы, добавьте к концу обнаруженного пути имена тех или иных файлов.

Поделиться:
Популярные книги

Наследник и новый Новосиб

Тарс Элиан
7. Десять Принцев Российской Империи
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Наследник и новый Новосиб

Сумеречный стрелок 8

Карелин Сергей Витальевич
8. Сумеречный стрелок
Фантастика:
городское фэнтези
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Сумеречный стрелок 8

Идеальный мир для Социопата 2

Сапфир Олег
2. Социопат
Фантастика:
боевая фантастика
рпг
6.11
рейтинг книги
Идеальный мир для Социопата 2

Краш-тест для майора

Рам Янка
3. Серьёзные мальчики в форме
Любовные романы:
современные любовные романы
эро литература
6.25
рейтинг книги
Краш-тест для майора

Идеальный мир для Социопата 6

Сапфир Олег
6. Социопат
Фантастика:
боевая фантастика
рпг
6.38
рейтинг книги
Идеальный мир для Социопата 6

Королевская Академия Магии. Неестественный Отбор

Самсонова Наталья
Любовные романы:
любовно-фантастические романы
8.22
рейтинг книги
Королевская Академия Магии. Неестественный Отбор

Ненаглядная жена его светлости

Зика Натаэль
Любовные романы:
любовно-фантастические романы
6.23
рейтинг книги
Ненаглядная жена его светлости

Кодекс Охотника. Книга V

Винокуров Юрий
5. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
4.50
рейтинг книги
Кодекс Охотника. Книга V

Его наследник

Безрукова Елена
1. Наследники Сильных
Любовные романы:
современные любовные романы
эро литература
5.87
рейтинг книги
Его наследник

Кодекс Охотника. Книга XXI

Винокуров Юрий
21. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XXI

Бальмануг. (Не) Любовница 2

Лашина Полина
4. Мир Десяти
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Бальмануг. (Не) Любовница 2

Корпулентные достоинства, или Знатный переполох. Дилогия

Цвик Катерина Александровна
Фантастика:
юмористическая фантастика
7.53
рейтинг книги
Корпулентные достоинства, или Знатный переполох. Дилогия

Идеальный мир для Лекаря 3

Сапфир Олег
3. Лекарь
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 3

Возмездие

Злобин Михаил
4. О чем молчат могилы
Фантастика:
фэнтези
7.47
рейтинг книги
Возмездие