Разработка для Документов в iCloud
Принятие хранения документов iCloud делает документы Вашего приложения доступными на всех устройствах пользователя. Документ (на основе UIDocument
класс в iOS или NSDocument
класс в OS X), совокупность связанных данных, которые могут быть записаны в диск как единственный файл или как пакет файла. Пакет файла, в свою очередь, каталог, представленный пользователю как единственный файл и сделанный доступным для Вашего приложения через NSFileWrapper
объект.
Документы автоматически реализуют большую часть поведения, ожидаемого приложений iCloud. В частности документ автоматически гарантирует, что локальные изменения безопасно координируются с порожденными из iCloud изменениями. Это делает это путем найма координатора файла (NSFileCoordinator
) возразите и путем принятия предъявителя файла (NSFilePresenter
) протокол. В OS X v10.8 и позже, автоматически обеспечивают документы, открывают/сохраняют/переименовывают UI и функциональность; в iOS Ваше приложение должно реализовать эти вещи. Использование координаторов файла и предъявителей обязательно при работе с документами iCloud.
Как Работы Хранения документов iCloud
Когда Вы пишете файлы и каталоги к хранению документов iCloud, система передает те элементы автоматически iCloud и другим устройствам пользователя. Используя iCloud хранение документов подобно использованию локальной файловой системы, за исключением следующих требований:
Приложения должны запросить, чтобы права для доступа к каталогам контейнера iCloud, как объяснено в Запросили Доступ к iCloud Используя Возможности XCode.
Приложения должны использовать хранение iCloud APIs, чтобы сконфигурировать и получить доступ к каталогам контейнера iCloud и управлять файлами.
Приложения должны использовать координацию файла, чтобы считать и записать содержание файлов, как объяснено в
Using File Coordination to Access Files and Directories
.
Чтобы понять, как хранение документов iCloud работает, оно помогает видеть его в действии. Рисунок 3-1 показывает упрощенное представление локального хранения на устройстве. В дополнение к локальным каталогам данных приложения приложения могут также получить доступ к любым контейнерам iCloud, для которых у них есть надлежащие права. Сами контейнеры iCloud также живут на устройстве, но находятся в другой части файловой системы и должны быть сконфигурированы, прежде чем они смогут использоваться. Для конфигурирования контейнера iCloud для использования Вы вызываете URLForUbiquityContainerIdentifier:
метод NSFileManager
от фонового потока (шаг 1), указывая контейнер, к которому Вы хотите получить доступ. Система конфигурирует контейнер (шаг 2) и возвращает базовый URL контейнерного каталога. Вы используете тот URL для создания дальнейшего URLs для указания файлов и каталогов, и Вы используете URL для создания запросов метаданных для поиска контейнера (шаг 3).
Используя координацию файла для доступа к файлам и каталогам
При доступе к файлам и каталогам в контейнере, приложения iCloud требуются, чтобы использовать координацию файла, чтобы сделать так. Координация файла использует координатора файла, и предъявитель файла возражает для сериализации доступа к файлам и каталогам для сохранения целостности данных. Предъявители файла контролируют файл и уведомляются каждый раз, когда другой поток или процесс принимают меры на нем. Все действия с файлом должны произойти через координатора файла, координирующего те действия с любыми заинтересованными предъявителями файла. Например, при перемещении файла от одного расположения до другого, координатор файла уведомляет любых заинтересованных предъявителей файла нового расположения. И при записи в файл, координатор файла задерживает операцию записи, пока все предъявители файла не указывают, что безопасно сделать так.
Приложения то использование объекты документа (UIDocument
в iOS и NSDocument
в OS X), получают координацию файла бесплатно. Объекты документа реализуют предъявителя (NSFilePresenter
) протокол и использование его методы для управления базовым файлом или пакетом файла. При чтении или записи содержания файла, объекты документа также используют координаторов файла (экземпляры NSFileCoordinator
класс) автоматически. Если Вы не используете объекты документа для доступа к файлам, необходимо обработать координацию файла сами. Для получения дополнительной информации, о как к координации файла поддержки в Ваших собственных объектах, посмотрите Роль Координаторов Файла и Предъявителей в Руководстве по программированию Файловой системы.
Передача Данных к и от iCloud
В первый раз, когда Ваше приложение добавляет дисковое представление документа iCloud (повсеместность) контейнер, система передает весь файл или пакет файла к серверу iCloud, как показано на рисунке 3-2. Первый шаг должен отправить метаданные документа, включающие информацию, такую как название документа, дата модификации, размер файла и тип файла. Эта передача метаданных имеет место быстро. Второй шаг должен отправить данные документа. Отправка метаданных документа сначала сообщает iCloud быстро, что существует новый документ. Сервер iCloud распространяет новые и измененные метаданные быстро ко всем другим доступным устройствам, присоединенным к той же учетной записи iCloud. Это позволяет устройствам знать, что новый документ доступен.
После того, как данные документа находятся на сервере, iCloud оптимизирует будущие передачи в и от устройств. Вместо того, чтобы отправить весь файл или пакет файла каждый раз, когда это изменяется, iCloud отправляет только изменившиеся метаданные и части. Рисунок 3-3 показывает визуальное представление этой инкрементной загрузки. Как прежде, система отправляет метаданные файла сначала так, чтобы iCloud мог распространить его к другим устройствам. После отправки метаданных система загружает только части изменившегося документа. Эта оптимизация сокращает сетевой трафик iCloud и сокращает сумму питания, использованного устройством. Можно помочь этой оптимизации путем разработки форматов файлов, поддерживающих инкрементные передачи, как описано в Проекте для Сетевого Коэффициента передачи.
Когда новый файл появляется в iCloud, тот файл должен быть загружен на другие устройства пользователя, как показано на рисунке 3-4. Для каждого устройства iCloud сначала отправляет метаданные того документа так, чтобы устройство знало о существовании файла. После этого синхронизация для получения данных файла зависит от типа устройства. В iOS приложения должны попросить, чтобы система (или явно или неявно) загрузила файл. Вы неявно загружаете файл путем попытки получить доступ к тому файлу, или можно явно загрузить файл путем вызова startDownloadingUbiquitousItemAtURL:error:
метод NSFileManager
. Mac загружает файлы автоматически, как только он обнаруживает их на сервере. Поэтому Mac иногда упоминается как “жадная коллега”. Если Ваше приложение Mac видит метаданные для нового документа, но сам документ еще не локален, это, вероятно, уже загружается системой от имени Вашего приложения.
После загрузки файл удовлетворяют в первый раз, когда последующие операции загружают только части файла, изменившегося, как показано на рисунке 3-5. Как со всеми передачами, первый шаг в процессе передачи должен загрузить обновленные метаданные документа для файла. После получения метаданных устройства автоматически вытягивают изменения в подходящее время. На устройствах на iOS изменения вытягивают в подходящее время, такой как тогда, когда приложение, которому принадлежат файлы, прибывает в передний план. В OS X изменения сразу вытягивают.
Для проверки загрузки или прогресса загрузки файла получите значение NSURLUbiquitousItemDownloadingStatusKey
от соответствия NSURL
объект. Значение того ключа говорит Вам, локален ли файл уже для устройства или в процессе того, чтобы быть загруженным. Можно получить более определенные данные о прогрессе загрузки путем получения других атрибутов NSURL
объект. Для списка соответствующих ключей см. Ссылку класса NSURL.
Обязанности за приложение по Использованию Документов iCloud
Изменения в документах Вашего приложения могут поступить от iCloud в любое время, таким образом, Ваше приложение должно быть подготовлено обработать их. NSDocument
класс в OS X выполняет большую часть этой работы для Вас, но в iOS существует больше для Вас для обработки явно. При реализации iOS и приложений OS X, сделайте следующий, чтобы удостовериться, что приложения обрабатывают изменения iCloud соответственно:
Включите Автоматическое Сохранение. Приложения должны позволить Автоматическому Сохранению участвовать с iCloud.
В iOS включите Автоматическое Сохранение путем регистрации в значении по умолчанию
NSUndoManager
возразите или путем вызоваupdateChangeCount:
методUIDocument
в подходящее время. Например, Вы могли бы вызватьupdateChangeCount:
когда представление отъезжает экран или Ваши переходы приложения к фону.В OS X включите Автоматическое Сохранение путем переопределения
autosavesInPlace
метод ВашегоNSDocument
подкласс и возвратYES
.В iOS активно отследите расположение документа в файловой системе. Каждый экземпляр Вашего приложения для iOS должен быть подготовлен к другому экземпляру переместить, переименовать или удалить основанные на iCloud документы. Если Ваше приложение постоянно хранит URL или информацию о пути к файлу или пакету файла, не предполагайте, что элемент все еще будет там следующим разом, когда Вы пытаетесь получить доступ к нему.
В iOS используйте
NSMetadataQuery
объект, вместе с координацией файла, для активного отслеживания расположений документов. Рано в процессе запуска Вашего приложения, инстанцируйте и сконфигурируйте объект запроса метаданных, запустите его, и регистр дляNSMetadataQueryDidUpdateNotification
уведомление. РеализуйтеpresentedItemDidMoveToURL:
метод иpresentedItemURL
свойство, чтобы позволить Вашему приложению реагировать на продвинутые изменения от iCloud. Обновите уровень своего приложения модели и обновите элементы пользовательского интерфейса Вашего приложения по мере необходимости.Для получения дополнительной информации при использовании запросов метаданных, см. Руководство по программированию Поиска Метаданных Файла.
В OS X активно не отслеживайте расположение документа в файловой системе. Открытые и Сохраняют диалоговые окна в основанном на документе приложении Mac, автоматически отслеживают расположения основанных на iCloud документов; Вы обычно не должны использовать
NSMetadataQuery
объект. Например, если пользователь переименовывает или перемещает документ при работе над одним устройством, экземпляры приложения, работающего на других устройствах автоматически, берут те изменения посредством архитектуры документа.В iOS активно загрузите файлы при необходимости. Файлы в iOS автоматически не загружаются. Начальная загрузка новых основанных на iCloud документов требует Вашего внимания и тщательного проекта в Вашем приложении. После явной загрузки такого элемента система автоматически загружает изменения, когда это может.
Рассмотрите отслеживание состояния загрузки файла как часть уровня Вашего приложения для iOS модели. Наличие этой информации позволяет Вам обеспечить лучший пользовательский опыт: можно разработать приложение для не удивления пользователей длинными задержками, когда они хотят открыть документ, который еще не локален. Для каждого файла (или пакет файла) URL, предоставленный запросом метаданных Вашего приложения, значением
NSURLUbiquitousItemDownloadingStatusKey
ключ говорит Вам, актуален ли файл или загружается ли это. Для получения значения этого ключа вызовитеgetResourceValue:forKey:error:
методNSURL
. Чтение незагруженного файла может занять много времени, потому что скоординированные блоки операции чтения до файла заканчивают загружать (или не удаются загрузить).Для файла (или пакет файла), который еще не локален, можно инициировать загрузку явно, когда пользователь запрашивает его или прежде если можно ожидать, что необходим файл. Если число файлов является маленьким, и каждый файл является самостоятельно относительно маленьким, Вы могли бы считать активно загрузку всех файлов обозначенной Вашим запросом метаданных. Для каждого файла (или пакет файла) URL, предоставленный запросом, сделайте соответствующий элемент локальным путем вызова
NSFileManager
методstartDownloadingUbiquitousItemAtURL:error:
. Если Вы передаете этот метод URL для элемента, который уже локален, метод не выполняет работы и возвратовYES
.В iOS ответьте на, и решение, версия документа конфликтует по мере необходимости. Конфликт возникает когда два экземпляра Вашего приложения для iOS, работая на двух различных устройствах, попытка изменить документ. Это может произойти, например, если два устройства не подключены к сети, пользователь вносит изменения на них обоих, и затем повторно подключает оба устройства к сети. О конфликтах сообщают Вашему использованию приложения
NSFileVersion
объекты. Архитектура документа iOS управляет разрешением конфликтов путем выдвижения победыNSFileVersion
объект, но это - ответственность Вашего приложения для iOS принять предложенную версию или указать различную. Большую часть времени можно полагаться на это автоматическое назначение; однако, Ваше приложение должно быть подготовлено помочь по мере необходимости.Когда iOS изменения состояния документа, это отправляет a
UIDocumentStateChangedNotification
уведомление. При получении этого уведомления запросите документdocumentState
свойство и проверка, если значениеUIDocumentStateInConflict
. Если Вы решаете, что явное разрешение необходимо, разрешите конфликт при помощиNSFileVersion
класс. Включите в список справку пользователя, если необходимый; но, когда возможно, разрешите конфликты без участия пользователя. Следует иметь в виду, что другой экземпляр Вашего приложения, работая на другом устройстве, присоединенном к той же учетной записи iCloud, мог бы разрешить конфликт, прежде чем локальный экземпляр сделает.Сделано разрешая конфликт, убедиться удалить любые устаревшие версии документа; если Вы не делаете, Вы напрасно используете способность в хранении iCloud пользователя.
В OS X полагайтесь на систему для разрешения конфликтов документа. OS X управляет разрешением конфликтов для Вас при использовании документов.
В OS X избегите мертвых блокировок, следующих из модальных элементов UI. В то время как Ваше приложение представляет модальный элемент пользовательского интерфейса, такой как диалоговое окно печати, для того же документа, для изменения документа возможно поступить от iCloud. Если то входящее изменение требует своего собственного модального интерфейса, такой что касается разрешения конфликтов, Ваше приложение может зайти в тупик.
Всегда используйте координатора файла для доступа к файлу iCloud или пакету файла. Объекты документа используют координаторов файла автоматически, который является одним из больших преимуществ использования документов при разработке для iCloud.
Основанное на документе приложение для iOS, однако, должно использовать координатора файла явно при работе на базовый файл документа; т.е. при перемещении, переименовывая, копируя или удаляя файл. Для этих операций используйте методы от
NSFileManager
класс в контексте координатора файла метод записи. Для получения дополнительной информации посмотрите Роль Координаторов Файла и Предъявителей в Руководстве по программированию Файловой системы.Большинство основанных на документе приложений OS X должно использовать встроенный центральный приложением документ, просматривающий UI, появляющийся при открытии или сохранении документов. Даже если Ваше приложение OS X должно представить документы программно пользователю, программно не переместите, переименуйте или удалите документы. Это до пользователя для выполнения тех операций с помощью Средства поиска, встроенного документа, переименовывающего UI, или встроенный iCloud «перемещает» пункты меню в меню File.
Не позволяйте пользователям непреднамеренно поделиться информацией. В отличие от пользователей iOS, у пользователей OS X есть прямой доступ к файловой системе. В результате пользователи могут управлять файлами и просмотреть их содержание за пределами ограничений Вашего приложения. При разработке форматов файлов тщательно рассмотрите, какой информацией пользователи не хотели бы делиться — например, в отправленной по электронной почте версии документа. Вместо того, чтобы поместить такую информацию в Ваш файл или пакет файла, сохраните его за пределами
Documents
подкаталог в контейнере iCloud (см. рисунок 1-2).Сделайте свои документы управляемыми пользователем, в надлежащих случаях. Файлы места в
Documents
подкаталог контейнера iCloud, чтобы сделать их видимыми пользователю и позволить пользователю удалить их индивидуально. Файлы Вы помещаете за пределамиDocuments
подкаталог группируется как «данные». Когда пользователь посещает Установки системы (OS X) или Настройки (iOS), пользователь может удалить содержание из iCloud. Файлы, которые Вы помещаете за пределамиDocuments
подкаталог может быть удален пользователем только как монолитная группа.Выбор того, использовать ли
Documents
подкаталог зависит от Вашего проекта приложения. Например, если Ваши поддержки приложений пользователь, создающий и называющий документ, вставляют соответствующий файл документаDocuments
подкаталог. Если Ваше приложение не позволяет пользователям взаимодействовать с файлами как дискретные документы, является более надлежащим разместить их за пределамиDocuments
подкаталог.
Разработка Формата Файла документа для iCloud
Выбор, который Вы делаете в разработке Вашего формата документа, может повлиять на сетевую производительность передачи для документов Вашего приложения. Самый важный выбор, несомненно, будет состоять в том, чтобы использовать пакет файла для Вашего формата документа.
Если Вы обеспечиваете версии своего приложения для iOS и Mac, разрабатываете Ваш формат файла документа, чтобы быть межплатформенные совместимый.
Проект для сетевого коэффициента передачи
Если Ваш формат данных документа состоит из многократных отличных частей, используйте пакет файла для своего формата файла документа. Пакет файла, к которому Вы получаете доступ посредством NSFileWrapper
возразите, позволяет Вам сохранить элементы документа как отдельные файлы и папки, которые могут быть считаны и записаны отдельно — при тихом появлении пользователю как единственный файл. Загрузка iCloud и машинное оборудование загрузки используют этот факторинг содержания в пакете файла; только измененные элементы загружаются или загружаются.
Зарегистрируйте свой формат файла документа и его связанное расширение файла, в Вашем приложении Info.plist
файл списка свойств в XCode. В частности используйте ключ CFBundleDocumentTypes для указания форматов файлов, которые приложение распознает и в состоянии открыться. Укажите и расширение файла и универсальный идентификатор типа (UTI), соответствующий содержанию файла. Система использует эту информацию для соединения пакетов файла к приложению, и, в OS X, к пакетам дисплейного файла пользователю, как будто они - нормальные файлы.
Проект для персистентного состояния документа
Много основанных на документе приложений получают преимущества от поддержания состояния на основе на документ. Например, пользователь основанного на векторе приложения получения хотел бы, чтобы каждый документ помнил, какой инструмент для рисования последний раз использовался и какой элемент получения был выбран.
Существует два места, можно сохранить специфичное для документа состояние:
В пакете файла (или формат плоского файла) для документа. Этот выбор поддерживает держащий состояние вместе с документом, если, например, пользователь отправляет его по электронной почте.
Связанный с документом, но за пределами его пакета файла (или формат файла). Этот выбор поддерживает случаи, в которых пользователь не хотел бы делиться информацией. Но, будучи за пределами данных, которыми управляют Ваши объекты документа, такое состояние не прослежено функциональностью разрешения конфликтов документа. Вам решать сделать так.
Какой бы ни схема, которую Вы выбираете, заботятся, в приложении, поддерживающем редактирование, чтобы никогда сохранить состояние документа, если не было отредактировано содержание документа. Иначе, Вы приглашаете тривиальные и бесполезные сценарии конфликта, использующие сетевую пропускную способность и заряд батареи.
Например, предположите, что пользователь редактировал документ длинного текста о ее iPad, работая на странице 1. Немного позже она открывает документ о своем iPhone и прокручивает к последней странице. Это плохо себя ведомое приложение в качестве примера настойчиво сохраняет позицию прокрутки конца документа — даже при том, что пользователь не внес никакие другие изменения. Когда пользователь позже открывает документ о ее iPad, чтобы продолжить редактировать, существует бесполезный конфликт вследствие данных позиции прокрутки. Система отметила документ как в конфликте (UIDocumentStateInConflict
), и более новая версия (автоматически назначенный победителем конфликта) является той, прокрученной до последней страницы. Чтобы быть приложением iCloud хорошего поведения, этот текстовый редактор должен был проигнорировать изменение в позиции прокрутки на iPhone, потому что пользователь не редактировал содержание.
Продумайте различные сценарии использования для своего приложения и разработайте соответственно для улучшения пользовательского опыта. Заботьтесь с состоянием как:
Позиция прокрутки документа
Выбор элемента
Открытые в последний раз метки времени
Табличный порядок сортировки
Размер окна (в OS X)
Стратегия рассмотреть состоит в том, чтобы сохранить такое состояние, но только когда пользователь также внес изменение, заслуживающее сохранения. В OS X встроенная функция Resume обеспечивает все поведение сохранения состояния, в котором нужно большинство основанных на документе приложений. Если Вы хотите дополнительное управление, можно использовать в своих интересах NSChangeDiscardable
тип изменения документа.
Проект для устойчивости и межплатформенной совместимости
Помните следующие факторы при разработке формата файла документа для iCloud:
Используйте межплатформенное представление данных. Подобно названные классы — те, префиксами которых является «UI» для iOS и «NS» для OS X — не непосредственно совместимы. Это - истина для цветов (
UIColor
иNSColor
), изображения (UIImage
иNSImage
), и пути Безье (UIBezierPath
иNSBezierPath
), а также для других классов.Например, OS X
NSColor
объект определяется с точки зрения цветового пространства (NSColorSpace
), но в iOS нет никакого класса цветового пространства.При использовании такого класса в свойстве формата документа необходимо разработать промежуточное представление iCloud, которое можно искренне перераспределить в собственное представление на любой платформе, как изображено на рисунке 3-6. Когда
NSDocument
объект сохраняет свои данные к диску (шаг 1), это преобразовывает каждый специфичный для платформы тип данных в промежуточное межплатформенное представление. Те межплатформенные данные сохраняются к iCloud и загружаются на другие устройства пользователя (шаги 2 и 3). Когда версия iOS Вашего приложения извлекает те данные (шаг 4), это преобразовывает данные из межплатформенного представления в специфичную для iOS версию.Храня документ из Вашего приложения для iOS для более позднего просмотра на любой платформе, Вы инвертировали бы процесс, показанный на рисунке 3-6 — запуск, храня Ваш документ iOS с помощью межплатформенного представления данных.
Для каждого специфичного для платформы типа данных Вы используете в своем формате документа, проверяете, существует ли надлежащий, тип данных низшего уровня, совместно использованный обеими платформами, которые можно использовать в промежуточном представлении. Например, каждый цветной класс (
UIColor
иNSColor
) имеет метод инициализации, позволяющий Вам создать цветовой объект из Базового ИзображенияCIColor
экземпляр.При подготовке данных к записи в iCloud преобразуйте в промежуточное представление; при чтении основанного на iCloud файла преобразуйте из промежуточного представления. Если Вы вызываете методы от
NSCoder
или его конкретные подклассы, чтобы закодировать и декодировать граф объектов Вашего документа, выполните эти преобразования в тех методах.Примите специфичные для платформы системы координат во внимание. Системы координаты экрана по умолчанию в iOS и OS X отличаются, приводя к различиям в том, как Вы рисуете и в том, как Вы располагаете представления. Примите это во внимание при хранении и извлечении информации о координате экрана с межплатформенным представлением. Для получения дополнительной информации посмотрите Системы координат и Рисующий в iOS в Рисовании и Печати Руководства для iOS.
Всегда используйте нечувствительные к регистру имена файлов. OS X, по умолчанию, и для почти всех пользователей, использует нечувствительную к регистру файловую систему. Например, файл
mydoc.txt
и файлMyDoc.TXT
не может оба существовать в том же каталоге в OS X. В отличие от этого, iOS обрабатывает те имена файлов, как являющиеся отличающимся.Чтобы заставить Ваш файл документа отформатировать межплатформенный совместимый, необходимо считать и записать файлы нечувствительным к регистру способом.
Используйте число версии формата. Поскольку можно хотеть изменить формат документа в будущем, разработайте нумерацию версии формата и примените номер версии как свойство формата документа.
Управление версиями Ваш формат документа всегда был хорошей идеей, и с iCloud и кросс-платформенными форматами, это еще более важно. Например, у пользователя iCloud, вероятно, будут многократные устройства, на которых можно просмотреть содержание; но пользователь не мог бы добросовестно обновить Ваше приложение на всех ее устройствах сразу. Так, например, Mac пользователя мог бы иметь новейшую версию Вашего приложения OS X, но его iPad мог бы иметь версию года Вашего приложения для iOS.
Ранняя версия Вашего приложения могла бы быть только для iOS; когда Вы позже распределите версию OS X, Вы, вероятно, захотите изменить формат документа. Путем встраивания версии формата в каждом документе код может корректно обработать документы независимо от их версии. Вы могли бы, например, сделать старый, формат только для iOS только для чтения в OS X. Продумайте различные сценарии, включающие многократные устройства на каждой платформе, каждый выполняющий различную версию Вашего приложения. Удостоверьтесь, что Вы обеспечиваете самый лучший пользовательский опыт для основанных на iCloud документов.
Для получения дополнительной информации о методах для разработки форматов файлов, посмотрите Types Выбора, Formats, и Strategies for Document Data in Document-Based App Programming Guide for iOS или Handling a Shared Data Model in OS X и iOS в Основанном на документе Руководстве по программированию Приложения для Mac.
Основанные на документе потоки операций
Таблица 3-1 перечисляет некоторые типичные потоки операций для основанных на документе приложений. Для каждого потока операций таблица приводит основные классы, которые Вы обычно используете, вместе с кратким описанием задачи.
Поток операций | Реализация | Описание |
---|---|---|
Создайте новый стандартный документ |
| Используйте объект документа, чтобы создать и управлять структурами данных в Вашем формате документа. Классы документа автоматически поддерживают сохраняющие новые документы к контейнеру iCloud или к локальному хранению. |
Создайте новый Базовый документ Данных |
| Используйте Базовые подклассы документа Данных, чтобы создать и управлять Вашими Базовыми Хранилищами данных. Для получения дополнительной информации посмотрите Разработку для Базовых Данных в iCloud. |
Получите URLs к документам iCloud |
Автоматический (OS X) | В iOS используйте объект запроса метаданных определить местоположение и получить живо обновленную информацию о документах iCloud. В OS X v10.8 или позже, Открывается документ, диалоговое окно использует запрос метаданных автоматически. |
Предложите пользователю открывать документ. | Пользовательский UI (iOS) Автоматический как часть архитектуры документа (OS X) | В iOS Ваше приложение непосредственно ответственно за представление выбора UI для пользовательских документов в простом и очевидном способе, соответствующем хорошо остальной части проекта приложения. В OS X v10.8 или позже, команда Open в основанном на документе приложении представляет диалоговое окно, позволяющее пользователю выбрать файлы iCloud. |
Обработайте конфликты версий |
Автоматический (OS X) | В iOS документы обнаруживают и уведомляют Вас о конфликтах. Использовать |
Переместите, копируйте и удалите основанные на iCloud документы | Управляйте файлами на диске с помощью |
Для получения дополнительной информации о том, как выполнить предыдущие потоки операций, посмотрите в основанном на документе руководстве по программированию для платформы, для которой Вы предназначаетесь. Для iOS см. Основанное на документе Руководство по программированию Приложения для iOS. Для Mac см. Основанное на документе Руководство по программированию Приложения для Mac.