Об Основанных на документе Приложениях в iOS
Платформа UIKit предлагает поддержку приложений, управляющих многократными документами с каждым документом, содержащим уникальный набор данных, хранящихся в файле, расположенном или в тестовой среде приложения или в iCloud.
Центральный к этой поддержке UIDocument
класс, представленный в iOS 5.0. Основанное на документе приложение должно создать подкласс UIDocument
это загружает данные документа в его структуры данных в памяти и предоставления UIDocument
с данными для записи в файл документа. UIDocument
заботится о многих подробных данных, связанных с управлением документооборотом для Вас. Помимо его интеграции с iCloud, UIDocument
чтения и данные документа записей в фоновом режиме так, чтобы пользовательский интерфейс Вашего приложения не становился безразличным во время этих операций. Это также сохраняет данные документа автоматически и периодически, освобождая Ваших пользователей от потребности явно сохранить.
Сразу
Несмотря на то, что основанное на документе приложение ответственно за диапазон способов поведения, делание основанного на документе приложения обычно является не трудной задачей.
Объекты документа являются модельными контроллерами
В шаблоне разработки Контроллера представления Модели, объектах документа — т.е. экземпляры подклассов UIDocument
— модельные контроллеры. Объект документа управляет данными, связанными с документом, в частности объекты модели, внутренне представляющие то, что пользователь просматривает и редактирует. Объект документа, в свою очередь, обычно управляется контроллером представления, представляющим документ пользователям.
Соответствующая глава: разработка основанного на документе приложения
При разработке приложения рассмотрите формат данных документа и другие проблемы
Перед записью строки кода, необходимо считать аспекты проекта определенными для основанных на документе приложений. Самое главное, каков лучший формат данных документа для Вашего приложения, и как можно заставить тот формат работать на приложение в iOS и Mac OS X? Каков самый надлежащий тип документа?
Также необходимо запланировать контроллеры представления (и представления) управление такими задачами как вводные документы, указание ошибок и перемещение выбранных документов и от хранения iCloud.
Соответствующие главы: разработка основанного на документе приложения, основанного на документе предварительного рейса приложения
Создание подкласса UIDocument требует двух переопределений метода
Основная роль объекта документа должна быть «кабелепроводом» данных между файлом документа и объектами модели, внутренне представляющими данные документа. Это дает UIDocument
классифицируйте данные для записи в файл документа и, после того, как файл документа читается, это инициализирует свои объекты модели с данными это UIDocument
дает его. Выполнить эту роль, Ваш подкласс UIDocument
должен переопределить contentsForType:error:
метод и loadFromContents:ofType:error:
метод, соответственно.
Соответствующая глава: создание пользовательского объекта документа
Приложение управляет документом через свой жизненный цикл
Приложение ответственно за управление следующими событиями во время времени жизни документа:
Создание документа
Открытие и закрытие документа
Наблюдение изменений в состоянии документа и ответ на ошибки или конфликты версий
Движущиеся документы хранению iCloud (и удаление их от хранения iCloud)
Удаление документа
Соответствующая глава: управление жизненным циклом документа
Приложение Файлы документов Хранилищ в iCloud По Пользовательскому Запросу
Приложения дают их пользователям опцию для помещения всех файлов документов в хранении iCloud или всех файлов документов в локальной тестовой среде. Для перемещения файлов документов в iCloud они составляют файл URL, определяющий местоположение документа в каталоге контейнера iCloud приложения, и затем вызывают определенный метод NSFileManager
класс, передающий в файле URL. Перемещение файлов документов от хранения iCloud до тестовой среды приложения выполняет подобную процедуру.
Соответствующая глава: управление жизненным циклом документа
Приложение Гарантирует, Что Данные Документа Сохраняются автоматически
UIDocument
следует за saveless моделью и автоматически сохраняет данные документа в определенных интервалах. Пользователь обычно никогда не должен сохранять документ явно. Однако Ваше приложение должно играть свою роль для saveless модели для работы, или путем реализации отмены и восстановления или путем отслеживания изменений в документе.
Соответствующая глава: отслеживание изменений и операции отмены
Приложение разрешает конфликты между различными версиями документа
Когда документы хранятся в iCloud, конфликты между версиями документа могут произойти. Когда конфликт происходит, UIKit сообщает приложению об этом. Приложение должно попытаться разрешить сам конфликт или пригласить пользователя выбирать версию, которую он или она предпочитает.
Соответствующая глава: разрешение конфликтов версии документа
Как использовать этот документ
Прежде чем Вы начнете писать любой код для своего основанного на документе приложения, необходимо, по крайней мере, считать первые две главы, Разработав Основанное на документе Приложение и Основанный на документе Предварительный рейс Приложения. Эти главы говорят о проекте и проблемах конфигурации, и дают Вам обзор задач, требуемых для хорошо разработанных основанных на документе приложений
Предпосылки
Перед чтением Основанного на документе Руководства по Прикладному программированию для iOS, необходимо познакомиться с информацией, представленной в Руководстве по программированию Приложения для iOS.
См. также
Следующие документы связаны в некотором роде с Основанным на документе Руководством по Прикладному программированию для iOS:
Универсальный Обзор Идентификаторов типов и связанная ссылка обсуждают Универсальные Идентификаторы типов (UTIs), которые являются основными идентификаторами типов документов.
Руководство по программированию Поиска Метаданных файла описывает, как провести поиски с помощью
NSMetadataQuery
класс и связанные классы. Вы используете запросы метаданных для определения местоположения документов приложения, хранивших в iCloud.Руководство по проектированию iCloud обеспечивает введение в поддержку документа iCloud.