Об Основанных на документе Приложениях в iOS

Платформа UIKit предлагает поддержку приложений, управляющих многократными документами с каждым документом, содержащим уникальный набор данных, хранящихся в файле, расположенном или в тестовой среде приложения или в iCloud.

../Art/syncing_overview_2x.png

Центральный к этой поддержке 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 они составляют файл URL, определяющий местоположение документа в каталоге контейнера iCloud приложения, и затем вызывают определенный метод NSFileManager класс, передающий в файле URL. Перемещение файлов документов от хранения iCloud до тестовой среды приложения выполняет подобную процедуру.

Соответствующая глава: управление жизненным циклом документа

Приложение Гарантирует, Что Данные Документа Сохраняются автоматически

UIDocument следует за saveless моделью и автоматически сохраняет данные документа в определенных интервалах. Пользователь обычно никогда не должен сохранять документ явно. Однако Ваше приложение должно играть свою роль для saveless модели для работы, или путем реализации отмены и восстановления или путем отслеживания изменений в документе.

Соответствующая глава: отслеживание изменений и операции отмены

Приложение разрешает конфликты между различными версиями документа

Когда документы хранятся в iCloud, конфликты между версиями документа могут произойти. Когда конфликт происходит, UIKit сообщает приложению об этом. Приложение должно попытаться разрешить сам конфликт или пригласить пользователя выбирать версию, которую он или она предпочитает.

Соответствующая глава: разрешение конфликтов версии документа

Как использовать этот документ

Прежде чем Вы начнете писать любой код для своего основанного на документе приложения, необходимо, по крайней мере, считать первые две главы, Разработав Основанное на документе Приложение и Основанный на документе Предварительный рейс Приложения. Эти главы говорят о проекте и проблемах конфигурации, и дают Вам обзор задач, требуемых для хорошо разработанных основанных на документе приложений

Предпосылки

Перед чтением Основанного на документе Руководства по Прикладному программированию для iOS, необходимо познакомиться с информацией, представленной в Руководстве по программированию Приложения для iOS.

См. также

Следующие документы связаны в некотором роде с Основанным на документе Руководством по Прикладному программированию для iOS: