iOS. Приемы программирования
Шрифт:
Следующий
И последний, но немаловажный момент. Нужно также обработать метод parserDidEndDocument: и избавиться от текущего свойства currentElementPointer:
Вот и все. Теперь можете выполнить синтаксический разбор нашего документа:
Теперь можно использовать свойство 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 выполняет резервное копирование информации из этого каталога.