Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека Разработчика iOS

Разработчик

Ссылка платформы UIKit ссылка класса UIDocument

Опции
Развертывание Target:

На этой странице
Язык:

UIDocument

Наследование


Оператор импорта


Swift

import UIKit

Objective C

@import UIKit;

Доступность


Доступный в iOS 5.0 и позже.

UIDocument класс является абстрактным базовым классом для управления данными документов.

Использующие приложения UIDocument и его базовая архитектура извлекает много пользы для их документов:

  • Асинхронное чтение и запись данных по очереди фоновых задач. Скорость отклика Вашего приложения пользователям таким образом незатронута при чтении и записи, что операции имеют место.

  • Скоординированное чтение и запись файлов документов, автоматически интегрирующаяся с облачными сервисами.

  • Поддержка обнаружения конфликтует между различными версиями документа (если это происходит).

  • Безопасное сохранение данных документа путем записи данных сначала во временный файл и затем замены файла текущего документа им.

  • Автоматическое сохранение данных документа в подходящие моменты; этот механизм включает поддержку контакта с, приостанавливают способы поведения.

В шаблоне разработки Контроллера представления Модели, a UIDocument объект является объектом модели или объектом контроллера модели — это управляет данными документа или совокупных объектов модели, вместе составляющих данные документа. Вы обычно соединяете его с целью контроллер, управляющий представлением, представляющим содержание документа. UIDocument не предоставляет поддержки для управления представлениями документа.

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

Основной атрибут документа в UIDocument архитектура является своим файлом URL. Когда Вы инициализируете экземпляр своего подкласса документа путем вызова initWithFileURL:, необходимо передать файл URL, определяющий местоположение файла документа в тестовой среде приложения. UIDocument определяет тип файла (Универсальный Идентификатор типа, связанный с расширением файла) и название документа (компонент имени файла) от файла URL. Можно переопределить методы доступа fileType и localizedName свойства для предоставления различных значений.

Следующие основы жизненный цикл типичного документа (см. “Примечания Разделения на подклассы” для подробных данных реализации):

  1. Вы создаете новый документ или открываете существующий документ.

    • Для создания нового документа выделите и инициализируйте экземпляр подкласса и затем вызовите saveToURL:forSaveOperation:completionHandler: на экземпляре.

    • Для открытия существующего документа (выбранный пользователем) выделите и инициализируйте экземпляр подкласса и затем вызовите openWithCompletionHandler: на экземпляре.

  2. Пользователь редактирует документ.

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

  3. Пользователь запрашивает что документ быть интегрированным с (дополнительными) облачными сервисами.

    Необходимо включить документ для «облачного» хранилища. Необходимо также разрешить любые конфликты между различными версиями того же документа.

  4. Пользователь закрывает документ.

    Вызвать closeWithCompletionHandler: на экземпляре документа. UIDocument если существуют какие-либо несохраненные изменения, сохраняет документ.

Типичное основанное на документе приложение вызывает openWithCompletionHandler:, closeWithCompletionHandler:, и saveToURL:forSaveOperation:completionHandler: на основном потоке. То, когда чтение или сохраняет работу, начатую этими методами, завершает, блок обработчика завершения выполняется на той же очереди отгрузки, на которой метод был вызван, позволив Вам выполнить любые задачи, зависящие от чтения или сохранить работу. Если работа не успешна, NOfalse передается в блок завершения-hander.

Реализация протокола NSFilePresenter

UIDocument класс принимает NSFilePresenter протокол. Когда другой клиент пытается считать документ a UIDocument- основанное приложение, то чтение приостановлено до UIDocument объекту дают возможность сохранить любые изменения, внесенные в документ.

Несмотря на то, что некоторые реализации ничего не делают, UIDocument реализации все NSFilePresenter методы. В частности, UIDocument:

В Вашем UIDocument подкласс, если Вы переопределяете a NSFilePresenter метод можно всегда вызывать реализацию суперкласса (super).

Разделение на подклассы примечаний

Каждое основанное на документе приложение должно создать подкласс UIDocument чьи экземпляры представляют его документы. Требования разделения на подклассы для большинства приложений просты:

  • Для записи операций реализуйте contentsForType:error: метод для обеспечения снимка данных документа. Данные должны быть в форме NSData объект (для плоских файлов) или NSFileWrapper объект (для пакетов файла). Операции записи обычно инициируются через функцию автосохранения

  • Для чтения операций реализуйте loadFromContents:ofType:error: метод к получает NSData или NSFileWrapper возразите и инициализируйте структуры данных приложения с ним.

  • Реализуйте отслеживание изменений для активации сохраняющейся автоматически опции. Посмотрите Отслеживание изменений для подробных данных.

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

contentsForType:error: и loadFromContents:ofType:error: методы обычно вызывают на основной очереди. Более в частности:

  • contentsForType:error: метод вызывают на очереди что saveToURL:forSaveOperation:completionHandler: к методу обратились; запись данных имеет место на фоновом потоке

  • loadFromContents:ofType:error: метод вызывают на очереди что openWithCompletionHandler: к методу обратились

Если у Вас есть особые требования для чтения и записи данных документа для который contentsForType:error: и loadFromContents:ofType:error: методы не будут достаточны, можно переопределить другие методы UIDocument класс. Посмотрите Усовершенствованные Переопределения для обсуждения этих требований и методов.

Отслеживание изменений

Активировать сохраняющуюся автоматически опцию UIDocument, когда пользователи вносят изменения в документ, необходимо уведомить его. UIDocument периодически проверки, ли hasUnsavedChanges возвраты метода YEStrue; если это делает, это инициирует работу сохранения для документа.

Существует два основных способа реализовать отслеживание изменений в Вашем UIDocument подкласс:

  • Вызовите методы NSUndoManager класс для реализации отмены и восстановления для документа. Можно получить доступ к значению по умолчанию NSUndoManager объект от undoManager свойство. Это - предпочтительный подход, специально для существующих приложений, уже поддерживающих отмену и восстановление.

  • Вызовите updateChangeCount: метод в надлежащих соединениях в Вашем коде.

Разрешение конфликтов и обработка ошибок

A UIDocument объект имеет определенное состояние в любой момент в его жизненном цикле. Можно проверить текущее состояние путем запросов documentState свойство, и уведомляется об изменениях путем наблюдения UIDocumentStateChangedNotification уведомление.

Если документ включен для iCloud, важно проверить на конфликтные версии и попытаться разрешить конфликты. Сделайте это путем прислушивания UIDocumentStateChangedNotification уведомление и затем проверяющий, ли состояние документа UIDocumentStateInConflict. Это состояние указывает, что там конфликтуют версии документа, к которому можно получить доступ путем вызова NSFileVersion метод класса unresolvedConflictVersionsOfItemAtURL:, передача в файле документа URL. Если можно разрешить конфликт правильно без взаимодействия с пользователем, сделайте так. Иначе, дискретно уведомьте пользователя, что конфликт существует, и позвольте им выбрать, как разрешить его. Возможные подходы включают:

  • Отображение конфликтных версий, от которых пользователь может выбрать одну или обе версии для хранения

  • Отображение объединенной версии и предоставление пользователю опция выбрать его

  • Отображение дат модификации файла и предоставление пользователю опция выбрать один или оба

Состояние документа, в дополнение к указанию конфликта межфайла, может указать ошибки. Например, UIDocumentStateClosed указывает ошибку в чтении, и UIDocumentStateSavingError указывает ошибку в сохранении или возвращении документ. Ваше приложение уведомляется относительно чтения и записи ошибок через success параметр передал в обработчики завершения openWithCompletionHandler:, closeWithCompletionHandler:, revertToContentsOfURL:completionHandler:, и saveToURL:forSaveOperation:completionHandler: методы.

Можно обработать ошибки путем вызова или реализации handleError:userInteractionPermitted: метод; этот метод вызывают реализации по умолчанию openWithCompletionHandler: и saveToURL:forSaveOperation:completionHandler: методы, когда a UIDocument возразите встречается с чтением или записью ошибки, соответственно. Если ситуация разрешает, пытаясь восстановиться с ошибки, можно обработать чтение, сохранить, и ошибки реверсии путем информирования пользователя и.

Обязательно считайте описание для contentsForType:error: метод для его руководства на ошибках из-за неправильного обращения встретился во время сохранения документа.

Усовершенствованные переопределения

Если Вы, приложение имеет особые требования для чтения или записи данных документа, это может переопределенные методы UIDocument кроме loadFromContents:ofType:error: и contentsForType:error:. Эти требования часто включают следующее:

  • Инкрементное чтение и запись больших файлов данных

    Переопределите readFromURL:error: и writeContents:toURL:forSaveOperation:originalContentsURL:error: методы, соответственно

  • Пользовательские представления данных документа (т.е. не a NSData или NSFileWrapper объект)

    Переопределите readFromURL:error: метод (при чтении данных документа) иwriteContents:toURL:forSaveOperation:originalContentsURL:error: метод (при записи данных документа).

  • Выполнение действий прежде или после чтения или записи данных

    Переопределение openWithCompletionHandler: и saveToURL:forSaveOperation:completionHandler:

  • Пользовательский подход к безопасному сохранению

    Переопределите writeContents:andAttributes:safelyToURL:forSaveOperation:error: метод.

  • Изменение типа файла документа, прежде чем это будет сохранено

    Переопределите savingFileType метод для возврата типа файла кроме значения по умолчанию (fileType). Примером этого является документ RTF, который, после того, как пользователь добавляет изображение к нему, должен быть сохранен как документ RTFD.

Если Вы переопределяете большинство этих методов, знают, что все чтение и запись данных документа должны быть сделаны на очереди фоновых задач и должны быть скоординированы с другими попытками читать из и записать в тот же файл документа. Из-за этого необходимо обычно вызывать реализацию суперкласса (super) как часть Вашего переопределения, и если Вы вызываете другой UIDocument методы необходимо обычно вызывать их в блоке, передали в вызов performAsynchronousFileAccessUsingBlock: метод. Считайте описания метода для подробных данных.

Соображения потокобезопасности

Если Вы переопределяете какое-либо из свойств атрибута документа (перечисленный при Доступе к Атрибутам документа) путем переопределения связанных методов доступа, знают, что платформа UIKit может вызвать эти методы доступа для фонового потока. Таким образом Ваша переопределяющая реализация должна быть ориентирована на многопотоковое исполнение.

  • Возвращает объект документа, инициализированный с его расположением файловой системы.

    Объявление

    Swift

    init(fileURL url: NSURL)

    Objective C

    - (instancetype)initWithFileURL:(NSURL *)url

    Параметры

    url

    URL файла, идентифицирующий расположение в тестовой среде приложения, где должны быть записаны данные документа. Передача в nil или пустой URL приводит к броску NSInvalidArgumentException.

    Возвращаемое значение

    A UIDocument объект или nil если не мог бы быть создан объект.

    Обсуждение

    После создания объекта документа, и никакой файл еще не существует для него, необходимо затем вызвать saveToURL:forSaveOperation:completionHandler: записать документ его расположению файловой системы в тестовой среде приложения. Если url определяет местоположение существующего файла документа, вызвать openWithCompletionHandler: после создания объекта документа. Второй параметр этого метода, постоянная работа сохранения, должен быть UIDocumentSaveForCreating когда еще нет никакого файла документа. В обработчике завершения, если Вы хотите, чтобы документ автоматически синхронизировался с другими устройствами и компьютерами, на которых установлено приложение, необходимо вызвать метод NSFileManager setMobileSynchEnabled:forItemAtURL:destinationDirectory:replacementURL:error:.

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 5.0 и позже.

    См. также

    fileURL

  • fileURL Свойство

    URL файла, с которым был инициализирован документ. (только для чтения)

    Объявление

    Swift

    var fileURL: NSURL { get }

    Objective C

    @property(readonly) NSURL *fileURL

    Обсуждение

    URL идентифицирует расположение документа в тестовой среде приложения. Это включает расширение файла, от которого определяется тип файла.

    UIKit устанавливает это свойство, прежде чем это вызовет обработчики завершения openWithCompletionHandler:, saveToURL:forSaveOperation:completionHandler:, и revertToContentsOfURL:completionHandler:. Если, за пределами этих методов или их обработчиков завершения, Вы хотите ожидать каких-либо незаконченных операций файла для завершения перед доступом к этому свойству можно вызвать performAsynchronousFileAccessUsingBlock: и доступ значение свойства в блочном параметре.

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 5.0 и позже.

  • localizedName Свойство

    Локализованное имя документа. (только для чтения)

    Объявление

    Swift

    var localizedName: String { get }

    Objective C

    @property(readonly, copy) NSString *localizedName

    Обсуждение

    По умолчанию UIKit получает значение из компонента имени файла fileURL. Можно переопределить метод доступа метода get этого свойства обеспечить пользовательское имя для представления пользователю, такой как в строках ошибки. См. “Примечания Разделения на подклассы” в описании класса для переопределяющего уведомления.

    UIKit устанавливает это свойство, прежде чем это вызовет обработчики завершения openWithCompletionHandler:, saveToURL:forSaveOperation:completionHandler:, и revertToContentsOfURL:completionHandler:. Если, за пределами этих методов или их обработчиков завершения, Вы хотите ожидать каких-либо незаконченных операций файла для завершения перед доступом к этому свойству можно вызвать performAsynchronousFileAccessUsingBlock: и доступ значение свойства в блочном параметре.

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 5.0 и позже.

  • fileType Свойство

    Тип файла документа. (только для чтения)

    Объявление

    Swift

    var fileType: String { get }

    Objective C

    @property(readonly, copy) NSString *fileType

    Обсуждение

    Тип файла является универсальным идентификатором типа (UTI). UIKit получает UTI из компонента расширения файла fileURL.

    UIKit устанавливает это свойство, прежде чем это вызовет обработчики завершения openWithCompletionHandler:, saveToURL:forSaveOperation:completionHandler:, и revertToContentsOfURL:completionHandler:. Если, за пределами этих методов или их обработчиков завершения, Вы хотите ожидать каких-либо незаконченных операций файла для завершения перед доступом к этому свойству можно вызвать performAsynchronousFileAccessUsingBlock: и доступ значение свойства в блочном параметре.

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 5.0 и позже.

  • fileModificationDate Свойство

    Дата и время файл документа была в последний раз изменена.

    Объявление

    Swift

    @NSCopying var fileModificationDate: NSDate?

    Objective C

    @property(copy) NSDate *fileModificationDate

    Обсуждение

    Дата модификации обновляется openWithCompletionHandler:, saveToURL:forSaveOperation:completionHandler:, и revertToContentsOfURL:completionHandler: методы. Его значение nil если ни один из этих методов не завершился успешно, по крайней мере, один раз. При переопределении какого-либо из этих методов, несомненно, необходимо будет установить это свойство в реализации.

    UIKit устанавливает это свойство, прежде чем это вызовет обработчики завершения openWithCompletionHandler:, saveToURL:forSaveOperation:completionHandler:, и revertToContentsOfURL:completionHandler:. Если, за пределами этих методов или их обработчиков завершения, Вы хотите ожидать каких-либо незаконченных операций файла для завершения перед доступом к этому свойству можно вызвать performAsynchronousFileAccessUsingBlock: и доступ значение свойства в блочном параметре.

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 5.0 и позже.

  • documentState Свойство

    Возвращает текущее состояние документа. (только для чтения)

    Объявление

    Swift

    var documentState: UIDocumentState { get }

    Objective C

    @property(readonly) UIDocumentState documentState

    Обсуждение

    Когда изменения состояния документа, UIDocument объектно-ориентированные памяти постоянная идентификация нового состояния в этом свойстве. Посмотрите перечисление состояния Документа для описаний этих констант. Для получения уведомлений об изменениях в состоянии документа наблюдайте UIDocumentStateChangedNotification уведомление.

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 5.0 и позже.

  • Асинхронно закрывает документ после сохранения любых изменений.

    Объявление

    Swift

    func closeWithCompletionHandler(_ completionHandler: ((Bool) -> Void)?)

    Objective C

    - (void)closeWithCompletionHandler:(void (^)(BOOL success))completionHandler

    Параметры

    completionHandler

    Блок с кодом для выполнения после save-close завершает. Блок не возвращает значения и имеет один параметр:

    success

    YEStrue если кто-либо сохраняет работу, успешно выполняется, иначе NOfalse.

    Блок вызывается на основную очередь.

    Обсуждение

    Вы вызываете этот метод для начала последовательности вызовов метода, сохраняющей документ безопасно и асинхронно. Расположение файловой системы документа происходит из fileURL свойство. После того, как работа сохранения завершает, код в completionHandler выполняется. В этом коде можно закрыть документ — например, путем удаления представления документа из экрана. Кроме того, если работа сохранения не успешно выполнялась (success NOfalse), можно ответить надлежащим способом.

    Вы обычно не переопределяли бы этот метод. Реализация по умолчанию вызывает autosaveWithCompletionHandler: метод.

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 5.0 и позже.

  • Переопределите этот метод для возврата данных документа, которые будут сохранены.

    Объявление

    Swift

    func contentsForType(_ typeName: String, error outError: NSErrorPointer) -> AnyObject?

    Objective C

    - (id)contentsForType:(NSString *)typeName error:(NSError **)outError

    Параметры

    typeName

    Тип файла документа, Uniform Type Identifier (UTI). Эта строка обычно происходит из fileType свойство. Если Вы хотите сохранить документ под различным UTI, можно переопределить savingFileType метод.

    outError

    Если Вы не можете возвратить данные документа, возвратитесь косвенно NSError объект, инкапсулирующий причины, Вы не можете. Иначе, проигнорируйте этот параметр.

    Возвращаемое значение

    Данные документа, которые будут сохранены, или nil если Вы не можете возвратить данные документа. Возвращенный объект обычно является экземпляром NSData класс для плоских файлов или NSFileWrapper класс для пакетов файла. Если Вы возвращаетесь nil, необходимо также возвратить ошибочный объект в outError.

    Если Вы возвращаете объект кроме NSData или NSFileWrapper объект, необходимо переопределить writeContents:andAttributes:safelyToURL:forSaveOperation:error: или writeContents:toURL:forSaveOperation:originalContentsURL:error: метод для обработки записи данных.

    Обсуждение

    Когда Вы разделяете на подклассы UIDocument, переопределите этот метод для обеспечения UIKit данными документа для сохранения.

    Этот метод вызывают на очереди что saveToURL:forSaveOperation:completionHandler: к методу обратились (обычно, основная очередь). Запись данных происходит на очереди фоновых задач. Реализация по умолчанию этого метода возвраты nil.

    Когда Вы возвращаетесь не -nil значение в outError параметр, обработчики завершения для следующих методов не становятся вызванными:

    Вместо этого в этом случае ошибка доступна Вашему приложению в handleError:userInteractionPermitted: метод и в UIDocumentStateChangedNotification уведомление.

    Если Вы хотите больше управления работой сохранения, чем этот метод обеспечивает — например, если Вы хотите выполнить инкрементную запись данных — переопределение, вместо этого, один из методов записи данных низшего уровня такой как writeContents:andAttributes:safelyToURL:forSaveOperation:error: или writeContents:toURL:forSaveOperation:originalContentsURL:error:. Эти методы вызывают на фоновом потоке.

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 5.0 и позже.

  • Сохраняет данные документа к указанному расположению в тестовой среде приложения.

    Объявление

    Swift

    func saveToURL(_ url: NSURL, forSaveOperation saveOperation: UIDocumentSaveOperation, completionHandler completionHandler: ((Bool) -> Void)?)

    Objective C

    - (void)saveToURL:(NSURL *)url forSaveOperation:(UIDocumentSaveOperation)saveOperation completionHandler:(void (^)(BOOL success))completionHandler

    Параметры

    url

    Файл URL, идентифицирующий расположение в тестовой среде приложения для записи данные документа в. Как правило, это - URL, полученный из fileURL свойство.

    saveOperation

    Константа, указывающая, пишется ли файл документа в первый раз или перезаписывается ли это. См., что Документ Сохраняет Работу для подробных данных.

    completionHandler

    Блок с кодом, выполняющимся, когда завершает работа сохранения. Блок не возвращает значения и имеет один параметр:

    success

    YEStrue если работа сохранения успешно выполняется, иначе NOfalse.

    Этот блок вызывается на очередь вызова.

    Обсуждение

    Реализация по умолчанию этого метода сначала вызывает contentsForType:error: метод синхронно на очереди вызова, чтобы заставить данные документа сохранять. Тогда это вызывает writeContents:andAttributes:safelyToURL:forSaveOperation:error: метод на очереди фоновых задач для выполнения фактической записи данных к диску.

    При переопределении этого метода рекомендуется сначала вызвать реализацию суперкласса метода (super). Если Вы не вызываете super, необходимо сделать две вещи:

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 5.0 и позже.

  • Гарантирует, что данные документа записаны безопасно в указанное расположение в тестовой среде приложения.

    Объявление

    Swift

    func writeContents(_ contents: AnyObject, andAttributes additionalFileAttributes: [NSObject : AnyObject]?, safelyToURL url: NSURL, forSaveOperation saveOperation: UIDocumentSaveOperation, error outError: NSErrorPointer) -> Bool

    Objective C

    - (BOOL)writeContents:(id)contents andAttributes:(NSDictionary *)additionalFileAttributes safelyToURL:(NSURL *)url forSaveOperation:(UIDocumentSaveOperation)saveOperation error:(NSError **)outError

    Параметры

    contents

    Данные документа для записи в диск. Как правило, данные инкапсулируются NSData объект (если плоский файл) или NSFileWrapper объект (если пакет файла).

    Если объект, инкапсулирующий данные документа, имеет некоторый другой тип, необходимо переопределить этот метод или writeContents:toURL:forSaveOperation:originalContentsURL:error: выполнять фактическую запись данных.

    additionalFileAttributes

    Словарь NSFileManager атрибуты файла для присвоения к файлу документа. Реализация по умолчанию получает эти атрибуты файла путем вызова fileAttributesToWriteToURL:forSaveOperation:error:.

    url

    Файл URL, указывающий расположение файла документа в тестовой среде приложения.

    saveOperation

    Константа, указывающая, пишется ли файл документа в первый раз или перезаписывается ли это. См., что Документ Сохраняет Работу для подробных данных.

    outError

    Если Вы переопределяете этот метод и не можете записать данные документа ни по какой причине, возвратитесь косвенно NSError объект, инкапсулирующий причины, почему Вы не можете. Иначе, проигнорируйте этот параметр.

    Возвращаемое значение

    YEStrue если операция записи успешно выполняется, иначе NOfalse.

    Обсуждение

    Этот метод вызывают saveToURL:forSaveOperation:completionHandler: метод для сохранения данных файла (и связанные атрибуты в случае NSFileWrapper). Это создает временные файлы и каталоги по мере необходимости так, чтобы успешный сохранил, может быть завершен атомарно и отказавшим, сохраняет, может откатываться чисто. Это вызовы метода writeContents:toURL:forSaveOperation:originalContentsURL:error: сохранить contents объект, передавая расположение для нового сохраненного файла в toURL параметр и расположение ранее существующего файла в originalContentsURL параметр, если это - работа перезаписи.

    Если Вы хотите измениться, как данные файла сохраняются, Вы обычно переопределяете writeContents:toURL:forSaveOperation:originalContentsURL:error: метод вместо этого метода. Кроме того, Вы не должны вызывать этот метод непосредственно, если Вы не переопределяете saveToURL:forSaveOperation:completionHandler: метод.

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 5.0 и позже.

  • Пишут данные документа в диск в расположении песочницы, обозначенном файлом URL.

    Объявление

    Swift

    func writeContents(_ contents: AnyObject, toURL url: NSURL, forSaveOperation saveOperation: UIDocumentSaveOperation, originalContentsURL originalContentsURL: NSURL?, error outError: NSErrorPointer) -> Bool

    Objective C

    - (BOOL)writeContents:(id)contents toURL:(NSURL *)url forSaveOperation:(UIDocumentSaveOperation)saveOperation originalContentsURL:(NSURL *)originalContentsURL error:(NSError **)outError

    Параметры

    contents

    Данные документа для записи в диск. Как правило, данные инкапсулируются NSData объект (если плоский файл) или NSFileWrapper объект (если пакет файла).

    Если объект, инкапсулирующий данные документа, имеет некоторый другой тип, необходимо переопределить этот метод или writeContents:andAttributes:safelyToURL:forSaveOperation:error: выполнять фактическую запись данных.

    url

    Файл URL, указывающий расположение файла документа в тестовой среде приложения.

    saveOperation

    Константа, указывающая, пишется ли файл документа в первый раз или перезаписывается ли это. См., что Документ Сохраняет Работу для подробных данных.

    originalContentsURL

    Файл URL, указывающий предыдущее расположение файла документа (если нет nil).

    outError

    Если Вы переопределяете этот метод и не можете записать данные документа ни по какой причине, возвратитесь косвенно NSError объект, инкапсулирующий причины, почему Вы не можете. Иначе, проигнорируйте этот параметр.

    Возвращаемое значение

    YEStrue если операция записи успешно выполняется, иначе NOfalse.

    Обсуждение

    Этот метод вызывают writeContents:andAttributes:safelyToURL:forSaveOperation:error: записать фактические данные файла. Это передается, объект содержания возвратился из Вашего contentsForType:error: реализация. Реализация по умолчанию этого метода поддержки NSData или NSFileWrapper содержание, прося, чтобы содержание возразило для сохранения себя к соответствующему URL.

    При переопределении этого метода можно принять решение возвратить другой тип данных от contentsForType:error: или можно принять решение не переопределить contentsForType:error: и генерируйте перезаписываемые данные непосредственно в этом методе. При переопределении этого метода Вы не должны вызывать реализацию суперкласса.

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 5.0 и позже.

  • Возвращает тип файла для использования для того, чтобы сохранить документ.

    Объявление

    Swift

    func savingFileType() -> String!

    Objective C

    - (NSString *)savingFileType

    Возвращаемое значение

    Uniform Type Identifier (UTI), идентифицирующий тип документа (например, PDF или HTML).

    Обсуждение

    Реализация по умолчанию возвращает текущий тип файла, полученный из fileType свойство. Реализация по умолчанию saveToURL:forSaveOperation:completionHandler: метод добавляет расширение файла URL, основывающийся на типе файла. Таким образом, если Вы хотите переместить документ новому типу и расширению, можно переопределить этот метод для предоставления того типа файла.

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 5.0 и позже.

  • Возвращает словарь атрибутов файла для соединения с файлом документа при записи или обновлении его.

    Объявление

    Swift

    func fileAttributesToWriteToURL(_ url: NSURL, forSaveOperation saveOperation: UIDocumentSaveOperation, error outError: NSErrorPointer) -> [NSObject : AnyObject]?

    Objective C

    - (NSDictionary *)fileAttributesToWriteToURL:(NSURL *)url forSaveOperation:(UIDocumentSaveOperation)saveOperation error:(NSError **)outError

    Параметры

    url

    Файл URL, определяющий местоположение документа в тестовой среде приложения.

    saveOperation

    Константа, указывающая, пишется ли файл документа в первый раз или перезаписывается ли это. См., что Документ Сохраняет Работу для подробных данных.

    outError

    Если Вы переопределяете этот метод и не можете записать данные документа ни по какой причине, возвратитесь косвенно NSError объект, инкапсулирующий причины, почему Вы не можете. Иначе, проигнорируйте этот параметр.

    Возвращаемое значение

    Словарь атрибутов файла — например, уровень защиты файла и даты создания. Посмотрите Ссылку класса NSFileManager для получения дополнительной информации об атрибутах файла.

    Обсуждение

    Атрибуты связаны с определенным типом файла и сохраняют работу. Можно переопределить этот метод для возврата словаря атрибутов файла, отличающихся, чем атрибут файла по умолчанию, который для новых файлов является NSFileExtensionHidden.

    saveToURL:forSaveOperation:completionHandler: вызовы этот метод прежде, чем выполнить асинхронную запись. Это передает словарь в writeContents:andAttributes:safelyToURL:forSaveOperation:error: когда это вызывает тот метод для записи файла документа.

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 5.0 и позже.

  • Возвращает расширение файла для добавления к файлу URL записанного файла документа.

    Объявление

    Swift

    func fileNameExtensionForType(_ typeName: String, saveOperation saveOperation: UIDocumentSaveOperation) -> String

    Objective C

    - (NSString *)fileNameExtensionForType:(NSString *)typeName saveOperation:(UIDocumentSaveOperation)saveOperation

    Параметры

    typeName

    Uniform Type Identifier (UTI), указывающий тип документа (например, PDF или HTML).

    saveOperation

    Константа, указывающая, пишется ли файл документа в первый раз или перезаписывается ли это. См., что Документ Сохраняет Работу для подробных данных.

    Возвращаемое значение

    Строка для использования в качестве расширения файла файла документа.

    Обсуждение

    Реализация по умолчанию запрашивает Launch Services для получения расширения файла, соответствующего файл (документ) тип. Можно переопределить этот метод для возврата расширения файла, отличающегося от расширения по умолчанию. Реализация по умолчанию saveToURL:forSaveOperation:completionHandler: вызовы метода этот метод, прежде чем это получит содержание документа и запишет файл документа в диск.

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 5.0 и позже.

  • Открывает документ асинхронно.

    Объявление

    Swift

    func openWithCompletionHandler(_ completionHandler: ((Bool) -> Void)?)

    Objective C

    - (void)openWithCompletionHandler:(void (^)(BOOL success))completionHandler

    Параметры

    completionHandler

    Блок с кодом для выполнения после операции открытия завершает. Блок не возвращает значения и имеет один параметр:

    success

    YEStrue если операция открытия успешно выполняется, иначе NOfalse.

    Блок вызывается на основную очередь.

    Обсуждение

    Вызовите этот метод для начала последовательности вызовов метода, открывающей и читающей документ асинхронно. Метод получает расположение файловой системы документа от fileURL свойство. После того, как операция открытия заканчивается, код в completionHandler выполняется.

    Можно переопределить этот метод, если Вы хотите пользовательское открывающее документ поведение, но если Вы делаете рекомендуется вызвать реализацию суперкласса сначала (super). Если Вы не вызываете super, необходимо использовать NSFileCoordinator класс для реализации скоординированного чтения. Реализация по умолчанию устанавливает координацию файла и затем вызывает performAsynchronousFileAccessUsingBlock: запланировать читающую документ работу для выполнения на очереди фоновых задач. Задача с очередями тогда вызывает readFromURL:error:.

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 5.0 и позже.

  • Переопределите этот метод для загрузки данных документа в модель данных приложения.

    Объявление

    Swift

    func loadFromContents(_ contents: AnyObject, ofType typeName: String, error outError: NSErrorPointer) -> Bool

    Objective C

    - (BOOL)loadFromContents:(id)contents ofType:(NSString *)typeName error:(NSError **)outError

    Параметры

    contents

    Объект, инкапсулирующий данные документа для загрузки. Этот объект является любой экземпляром NSData класс (для плоских файлов) или NSFileWrapper класс (для пакетов файла).

    typeName

    Тип файла документа, Uniform Type Identifier (UTI) на основе расширения файла fileURL. Можно получить значение по умолчанию типа файла от fileType свойство.

    outError

    Если Вы не можете загрузить данные документа ни по какой причине, возвратитесь косвенно NSError объект, инкапсулирующий причины, Вы не можете. Иначе, проигнорируйте этот параметр.

    Возвращаемое значение

    YEStrue если Вы успешно загружаете документ, NOfalse иначе.

    Обсуждение

    Переопределите этот метод, чтобы принять и загрузить данные для документа. После UIDocument считывает данные документа из файла, расположенного в fileURL это вызывает Ваш подкласс, передавая данные подклассу в этом методе. Этот метод вызывают на очереди что openWithCompletionHandler: к методу обратились (обычно, основная очередь).

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 5.0 и позже.

  • Считывает данные документа в файле в указанном расположении в тестовой среде приложения.

    Объявление

    Swift

    func readFromURL(_ url: NSURL, error outError: NSErrorPointer) -> Bool

    Objective C

    - (BOOL)readFromURL:(NSURL *)url error:(NSError **)outError

    Параметры

    url

    URL файла, идентифицирующий расположение файла документа в тестовой среде приложения. Этот файл URL обычно является тем, возвращенным fileURL свойство.

    outError

    Если файл документа не может быть считан, возвраты косвенно ошибочный объект, инкапсулирующий причины, почему операция чтения перестала работать.

    Возвращаемое значение

    YEStrue если операция чтения успешно выполняется, иначе NOfalse.

    Обсуждение

    Типичный UIDocument если весь файл читается сразу, подклассы не должны должны быть вызывать этот метод непосредственно, особенно. Вызовы реализации по умолчанию loadFromContents:ofType:error: на том, очереди, на который openWithCompletionHandler: был вызван для обеспечения UIDocument подкласс с объектом данных документа.

    Подклассы, хотящие больше управления чтением файла документа — например, которые хотят считать большой файл документа инкрементно — могут переопределить этот метод. Не необходимо для этих подклассов вызвать реализацию суперкласса (super).

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 5.0 и позже.

  • Планирует читающую документ или пишущую документ работу на параллельную очередь фоновых задач.

    Объявление

    Swift

    func performAsynchronousFileAccessUsingBlock(_ block: (() -> Void)!)

    Objective C

    - (void)performAsynchronousFileAccessUsingBlock:(void (^)(void))block

    Параметры

    block

    Блок, вызывающийся как задача выполниться на очереди фоновых задач. Блок не возвращает значения и не берет параметров.

    Обсуждение

    Типичное UIDocument подклассы — т.е. переопределяющий тот contentsForType:error: и loadFromContents:ofType:error:— не должен вызывать этот метод.

    Реализации по умолчанию saveToURL:forSaveOperation:completionHandler: и openWithCompletionHandler: вызовите этот метод для сериализации доступа к файлу. Если Вы переопределяете эти методы и не вызываете super, необходимо вызвать этот метод для сериализации доступа к файлу на очереди фоновых задач. Если Вы непосредственно вызываете readFromURL:error: метод, необходимо перенестись, тот вызов в блоке передал в performAsynchronousFileAccessUsingBlock:.

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 5.0 и позже.

  • Возвращается документ новым данным документа сохранил дисковый.

    Объявление

    Swift

    func revertToContentsOfURL(_ url: NSURL, completionHandler completionHandler: ((Bool) -> Void)?)

    Objective C

    - (void)revertToContentsOfURL:(NSURL *)url completionHandler:(void (^)(BOOL success))completionHandler

    Параметры

    url

    Файл URL, определяющий местоположение новой версии файла документа в песочнице приложения.

    completionHandler

    Блок с кодом для выполнения после работы реверсии завершает. Блок не возвращает значения и имеет один параметр:

    success

    YEStrue если работа реверсии успешно выполняется, иначе NOfalse.

    Блок вызывается на основную очередь.

    Обсуждение

    Вы вызываете этот метод, чтобы отбросить все несохраненные модификации документа и заменить содержание документа путем чтения файла или пакета файла, расположенного url. Реализация по умолчанию заключает в скобки работу реверсии между disableEditing и enableEditingпотому что документ не должен принимать пользовательские изменения в течение этого периода. Подклассы, переопределяющие этот метод, должны вызвать реализацию суперкласса (super) или используйте NSFileCoordinator класс для инициирования скоординированного чтения.

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 5.0 и позже.

  • Переопределенный для отключения редактирования, когда небезопасно внести изменения в документ.

    Объявление

    Swift

    func disableEditing()

    Objective C

    - (void)disableEditing

    Обсуждение

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

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 5.0 и позже.

  • Переопределенный, чтобы позволить редактировать, когда безопасно снова внести изменения в документ.

    Объявление

    Swift

    func enableEditing()

    Objective C

    - (void)enableEditing

    Обсуждение

    Подклассы должны переопределить этот метод, чтобы позволить пользователю редактировать документ, когда безопасно сделать так. Это переопределение метода должно быть соединено с переопределением disableEditing. Реализация по умолчанию этого метода ничего не делает.

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 5.0 и позже.

  • Возвраты, имеет ли документ какие-либо несохраненные изменения.

    Объявление

    Swift

    func hasUnsavedChanges() -> Bool

    Objective C

    - (BOOL)hasUnsavedChanges

    Возвращаемое значение

    YEStrue если документ не сохранил изменения, иначе NOfalse.

    Обсуждение

    Реализация по умолчанию autosaveWithCompletionHandler: если этот метод возвращается, инициирует сохранение YEStrue. Типичные подклассы не должны переопределять hasUnsavedChanges метод. Для реализации отслеживания изменений они должны вместо этого использовать NSUndoManager объект (присвоенный undoManager) зарегистрировать изменения или вызов updateChangeCount: каждый раз пользователь вносит изменение; UIKit тогда автоматически определяет, не сохраняются ли там изменения.

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 5.0 и позже.

  • Обновите счетчик изменения путем указания вида изменения.

    Объявление

    Swift

    func updateChangeCount(_ change: UIDocumentChangeKind)

    Objective C

    - (void)updateChangeCount:(UIDocumentChangeKind)change

    Параметры

    change

    Константа, указывающая, было ли изменение внесено, очищено, отменено или восстановлено. См., что Документ Сохраняет Вид для получения дополнительной информации.

    Обсуждение

    Вызов этого метода может влиять на значение, возвращенное hasUnsavedChanges. Если Вы получаете доступ, Вы не должны должны быть вызывать метод это NSUndoManager объект от undoManager свойство (или присваивают пользовательский ему), и изменения регистра с менеджером по отмене.

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 5.0 и позже.

  • undoManager Свойство

    Менеджер по отмене по документу.

    Объявление

    Swift

    var undoManager: NSUndoManager

    Objective C

    @property(retain) NSUndoManager *undoManager

    Обсуждение

    Это свойство содержит менеджера по отмене документа ( NSUndoManager объект) или nil если к этому свойству не получили доступ или установили. Если пользовательский менеджер по отмене не был установлен, доступ к этому свойству создает менеджера по отмене по умолчанию.

    Менеджер по отмене по документу регистрируется как наблюдатель различных NSUndoManager уведомления так, чтобы это могло вызвать updateChangeCount: поскольку пользователь вносит невыполнимые изменения в документ. Когда подкласс устанавливает это свойство и реализует изменения регистров с ним, оно не должно вызывать updateChangeCount: непосредственно или (более редко) переопределяйте hasUnsavedChanges.

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 5.0 и позже.

  • Переопределенный для возврата маркера изменения для определенной работы сохранения.

    Объявление

    Swift

    func changeCountTokenForSaveOperation(_ saveOperation: UIDocumentSaveOperation) -> AnyObject

    Objective C

    - (id)changeCountTokenForSaveOperation:(UIDocumentSaveOperation)saveOperation

    Параметры

    saveOperation

    Константа, указывающая, пишет ли работа сохранения новый файл или перезаписывает существующий. См., что Документ Сохраняет Работу для описаний этих констант.

    Возвращаемое значение

    Объект использовать в качестве маркера количества изменения.

    Обсуждение

    Для получения сохраняющихся автоматически возможностей документов необходимо реализовать отслеживание изменений. Обычно Вы делаете это при помощи NSUndoManager объект (присвоенный undoManager свойство) для регистрации изменений или путем вызова updateChangeCount: метод каждый раз пользователь вносит изменение; UIKit тогда автоматически определяет, не сохраняются ли там изменения, и возвращает собственное значение из hasUnsavedChanges. Если Вы не проявляете ни один из этих подходов (и Вы хотите сохраняющуюся автоматически функцию), необходимо реализовать этот метод, а также updateChangeCountWithToken:forSaveOperation: и hasUnsavedChanges.

    Вы реализуете этот определенный метод для возврата маркера количества изменения, который использование UIKit для инкапсуляции истории документа изменяет для определенной работы сохранения. Маркер может быть любым объектом, представляющим текущее состояние изменения документа. Этот метод вызывают в начале реализации по умолчанию saveToURL:forSaveOperation:completionHandler: метод. В конце этой реализации по умолчанию это вызывает updateChangeCountWithToken:forSaveOperation: метод, передающий в маркере количества изменения. Вы реализуете последний метод для сравнения, маркер с тем возвратился ранее; путем выполнения так, можно определить, получил ли документ новые несохраненные изменения между запуском и концом асинхронной операции записи. Можно тогда возвратить собственное значение из переопределения hasUnsavedChanges.

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 5.0 и позже.

  • Переопределенный для обновления количества изменения в отношении маркера количества изменения передал в UIKit.

    Объявление

    Swift

    func updateChangeCountWithToken(_ changeCountToken: AnyObject, forSaveOperation saveOperation: UIDocumentSaveOperation)

    Objective C

    - (void)updateChangeCountWithToken:(id)changeCountToken forSaveOperation:(UIDocumentSaveOperation)saveOperation

    Параметры

    changeCountToken

    Объект использовать в качестве маркера количества изменения. UIDocument полученный этот маркер ранее путем вызова changeCountTokenForSaveOperation:.

    saveOperation

    Константа, указывающая, пишет ли работа сохранения новый файл или перезаписывает существующий. См., что Документ Сохраняет Работу для описаний этих констант.

    Обсуждение

    Для получения сохраняющихся автоматически возможностей документов необходимо реализовать отслеживание изменений. Обычно Вы делаете это при помощи NSUndoManager объект (присвоенный undoManager свойство) для регистрации изменений или путем вызова updateChangeCount: метод каждый раз пользователь вносит изменение; UIKit тогда автоматически определяет, не сохраняются ли там изменения, и возвращает собственное значение из hasUnsavedChanges. Если Вы не проявляете ни один из этих подходов (и Вы хотите сохраняющуюся автоматически функцию), необходимо реализовать этот метод, а также changeCountTokenForSaveOperation: и hasUnsavedChanges.

    Вы реализуете changeCountTokenForSaveOperation: метод для возврата маркера количества изменения, который использование UIKit для инкапсуляции истории документа изменяет для определенной работы сохранения. Маркер может быть любым объектом, представляющим текущее состояние изменения документа. Этот метод вызывают в начале реализации по умолчанию saveToURL:forSaveOperation:completionHandler: метод. В конце этой реализации по умолчанию, UIDocument вызовы этот метод (updateChangeCountWithToken:forSaveOperation:), передавая в маркере количества изменения. Вы реализуете этот метод для сравнения, маркер с тем возвратился ранее; путем выполнения так, можно определить, получил ли документ новые несохраненные изменения между запуском и концом асинхронной операции записи. Можно тогда возвратить собственное значение из переопределения hasUnsavedChanges.

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 5.0 и позже.

  • Вызванный UIKit для инициирования автоматического сохранения документов с несохраненными изменениями.

    Объявление

    Swift

    func autosaveWithCompletionHandler(_ completionHandler: ((Bool) -> Void)?)

    Objective C

    - (void)autosaveWithCompletionHandler:(void (^)(BOOL success))completionHandler

    Параметры

    completionHandler

    Блок с кодом для выполнения после автоматического сохранения завершает. Блок не возвращает значения и имеет один параметр:

    success

    YEStrue если сохраняющаяся автоматически работа успешно выполняется, иначе NOfalse.

    Блок вызывается на очередь вызова.

    Обсуждение

    UIDocument если там не сохраняются изменения, периодически вызывает этот метод для инициирования работы сохранения. Вы не должны вызывать этот метод непосредственно. Подклассы могут переопределить его, если они хотят сделать специальные вещи с автоматическим сохранением. Реализация по умолчанию этого метода вызывает hasUnsavedChanges метод и, если это возвращается YEStrue, это вызывает saveToURL:forSaveOperation:completionHandler: метод.

    Этот метод должен только быть вызван для основанного на периоде, сохраняет. Можно вызвать его с success параметр набора параметра обработчика завершения к NOfalse и возвратитесь; это делает, это безопасный к не фактически сохраняет когда autosaveWithCompletionHandler: вызывается. Однако, если Вы вызываете saveToURL:forSaveOperation:completionHandler:, сохранение данных документа должно произойти.

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 5.0 и позже.

  • userActivity Свойство

    Объект, инкапсулирующий пользовательское действие, поддерживается этим документом.

    Объявление

    Swift

    var userActivity: NSUserActivity?

    Objective C

    @property(nonatomic, retain) NSUserActivity *userActivity

    Обсуждение

    NSDocument автоматически создает NSUserActivity объекты для основанных на iCloud документов, если приложение Info.plist файл списка свойств включает a CFBundleDocumentTypes ключ NSUbiquitousDocumentUserActivityType. Значение NSUbiquitousDocumentUserActivityType строка, использующаяся для NSUserActivity тип действия объекта. URL документа помещается в NSUserActivity объект userInfo словарь с NSUserActivityDocumentURLKey.

    На iOS, для NSUserActivity объекты, которыми управляет UIKit для становления текущими, необходимо или вызвать becomeCurrent явно или имейте документ NSUserActivity возразите также установленный на a UIViewController объект, который находится в иерархии представления, когда приложение прибывает в передний план.

    Если документ становится неповсеместным, userActivity свойство nil. Любой NSUserActivity объекты, которыми управляет AppKit, но не имеющие никаких ассоциированных документов (или респонденты) автоматически лишены законной силы.

    Это свойство может использоваться от любого потока. Это KVO заметный в случае, если userActivity объект совместно используется с другими объектами, которые должны быть сохранены в синхронизации, когда документ перемещается в и из iCloud.

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 8.0 и позже.

  • Восстановления состояние должны были продолжать данное пользовательское действие.

    Объявление

    Swift

    func restoreUserActivityState(_ activity: NSUserActivity)

    Objective C

    - (void)restoreUserActivityState:(NSUserActivity *)activity

    Параметры

    activity

    Пользовательское действие, которое будет продолжаться.

    Обсуждение

    Подклассы переопределяют этот метод для восстановления состояния респондента с данным пользовательским действием. Переопределение должно использовать данные состояния, содержавшиеся в userInfo словарь данного пользовательского действия для восстановления объекта.

    Пользовательские действия, которыми управляют NSDocument может быть восстановлен автоматически, если NOfalse возвращается из application:continueActivity:restorationHandler: или если это не реализовано. В этой ситуации документ открыт NSDocumentController метод openDocumentWithContentsOfURL:display:completionHandler: и получает a restoreUserActivityState: сообщение.

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 8.0 и позже.

  • Обновляет состояние данного пользовательского действия.

    Объявление

    Swift

    func updateUserActivityState(_ activity: NSUserActivity)

    Objective C

    - (void)updateUserActivityState:(NSUserActivity *)activity

    Параметры

    activity

    Пользовательское действие, которое будет обновлено.

    Обсуждение

    Реализация по умолчанию этого метода помещает документ fileURL в NSUserActivity объект userInfo словарь с NSUserActivityDocumentURLKey. UIDocument автоматически наборы needsSave свойство NSUserActivity объект к YEStrue когда fileURL изменения.

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 8.0 и позже.

  • Вызванный или переопределенный для обработки ошибки, происходящей во время попытки читать сохраните или вернитесь документ.

    Объявление

    Swift

    func handleError(_ error: NSError, userInteractionPermitted userInteractionPermitted: Bool)

    Objective C

    - (void)handleError:(NSError *)error userInteractionPermitted:(BOOL)userInteractionPermitted

    Параметры

    error

    Информация об инкапсуляции объекта об ошибке, с которой встречаются в попытке открыться, сохраните или вернитесь документ. Ошибочный домен NSCocoaErrorDomain. Код ошибки является одним из enum константы, объявленные в FoundationErrors.h.

    userInteractionPermitted

    Если NOfalse, никакая попытка не (или должен быть), сделанный представить модальное представление пользователю. Это значение может быть NOfalse в случаях такой как тогда, когда работа сохранения перестала работать, в то время как приостанавливается приложение. Если этот параметр YEStrue, UIKit или Ваше переопределение могут представить информацию об ошибке пользователю в модальном представлении и (дополнительно) позволить пользователю разрешать ошибку.

    Обсуждение

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

    Если Вы используете управляемые документы (экземпляры UIManagedDocument подкласс), необходимо разделить этот метод на подклассы и при желании finishedHandlingError:recovered: метод. Разделение на подклассы позволяет Вашему приложению наблюдать ошибки в сохранении или проверке. UIDocumentStateChangedNotification уведомление не содержит a userInfo словарь и так не передает определенную информацию об ошибке.

    Если Вы непосредственно вызываете какое-либо усовершенствованное чтение и методы записи, имеющие ошибочный параметр объекта (например, writeContents:andAttributes:safelyToURL:forSaveOperation:error:) и тот вызов возвращается NSError возразите косвенно, необходимо вызвать этот метод (handleError:userInteractionPermitted:), передавая в ошибочном объекте.

    Этот метод вызывают реализации по умолчанию openWithCompletionHandler: и saveToURL:forSaveOperation:completionHandler: когда UIDocument встречается с чтением или записью ошибки, соответственно.

    Если Вы переопределяете этот метод и не вызываете реализацию суперкласса (super), Вы ответственны за следующее:

    • Вызов finishedHandlingError:recovered: когда приложение не требует никаких дополнительных отзывов пользователей об ошибке, когда Вы закончены, обработав ошибку — например.

    • Реализация userInteractionNoLongerPermittedForError: завершить обработку ошибок сразу. Если userInteractionPermitted NOfalse, необходимо сразу обработать ошибку и вызов finishedHandlingError:recovered: в контексте handleError:userInteractionPermitted:

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 5.0 и позже.

  • Говорит UIKit, что Вы закончили, обработал ошибку.

    Объявление

    Swift

    func finishedHandlingError(_ error: NSError, recovered recovered: Bool)

    Objective C

    - (void)finishedHandlingError:(NSError *)error recovered:(BOOL)recovered

    Параметры

    error

    Ошибочный объект инкапсуляция информации об ошибке.

    recovered

    YEStrue если Вы восстановились с ошибки, иначе NOfalse.

    Обсуждение

    Когда обработка ошибки (включая любое взаимодействие с пользователем) завершена, этот метод вызывают по умолчанию. Подклассы должны вызвать этот метод, только если они переопределяют handleError:userInteractionPermitted: и не вызывайте реализацию суперкласса (super). При переопределении этого метода необходимо вызвать super.

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 5.0 и позже.

  • Отправленный, когда больше не безопасно продолжиться, сразу не обрабатывая ошибку.

    Объявление

    Swift

    func userInteractionNoLongerPermittedForError(_ error: NSError)

    Objective C

    - (void)userInteractionNoLongerPermittedForError:(NSError *)error

    Параметры

    error

    Ошибочный объект инкапсуляция информации об ошибке.

    Обсуждение

    UIKit вызывает этот метод, когда больше не безопасно продолжиться, сразу не обрабатывая ошибку, такой как тогда, когда приостанавливается приложение. Подклассы, переопределяющие этот метод, должны сразу закончить обработку ошибок (включая отклонение любого интерактивного пользовательского интерфейса) и вызов finishedHandlingError:recovered: перед возвратом. Если Вы переопределяете, только необходимо переопределить этот метод handleError:userInteractionPermitted: не вызывая реализацию суперкласса (super).

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 5.0 и позже.

  • Константы для указания вида изменения в документе.

    Объявление

    Swift

    enum UIDocumentChangeKind : Int { case Done case Undone case Redone case Cleared }

    Objective C

    enum { UIDocumentChangeDone, UIDocumentChangeUndone, UIDocumentChangeRedone, UIDocumentChangeCleared }; typedef NSInteger UIDocumentChangeKind;

    Константы

    • Done

      UIDocumentChangeDone

      Изменение было внесено в документ.

      Доступный в iOS 5.0 и позже.

    • Undone

      UIDocumentChangeUndone

      Изменение в документе было отменено.

      Доступный в iOS 5.0 и позже.

    • Redone

      UIDocumentChangeRedone

      Отмененное изменение в документе было восстановлено.

      Доступный в iOS 5.0 и позже.

    • Cleared

      UIDocumentChangeCleared

      Документ очищен от выдающихся изменений.

      Доступный в iOS 5.0 и позже.

    Обсуждение

    Вы указываете одну из этих констант как параметр updateChangeCount: метод.

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 5.0 и позже.

  • Константы для указания типа работы сохранения.

    Объявление

    Swift

    enum UIDocumentSaveOperation : Int { case ForCreating case ForOverwriting }

    Objective C

    enum { UIDocumentSaveForCreating, UIDocumentSaveForOverwriting }; typedef NSInteger UIDocumentSaveOperation;

    Константы

    • ForCreating

      UIDocumentSaveForCreating

      Впервые сохраняется документ.

      Доступный в iOS 5.0 и позже.

    • ForOverwriting

      UIDocumentSaveForOverwriting

      Документ сохраняется путем перезаписи текущей версии.

      Доступный в iOS 5.0 и позже.

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 5.0 и позже.

  • Состояние документа.

    Объявление

    Swift

    struct UIDocumentState : RawOptionSetType { init(_ rawValue: UInt) init(rawValue rawValue: UInt) static var Normal: UIDocumentState { get } static var Closed: UIDocumentState { get } static var InConflict: UIDocumentState { get } static var SavingError: UIDocumentState { get } static var EditingDisabled: UIDocumentState { get } }

    Objective C

    enum { UIDocumentStateNormal = 0, UIDocumentStateClosed = 1 << 0, UIDocumentStateInConflict = 1 << 1, UIDocumentStateSavingError = 1 << 2, UIDocumentStateEditingDisabled = 1 << 3 }; typedef NSInteger UIDocumentState;

    Константы

    • Normal

      UIDocumentStateNormal

      Документ открыт, редактирование включено, и нет никаких конфликтов или ошибок, связанных с ним.

      Доступный в iOS 5.0 и позже.

    • Closed

      UIDocumentStateClosed

      Была ошибка в чтении документа: документ не был или успешно открыт или был с тех пор закрыт. Свойства документа не могли бы быть допустимыми.

      Доступный в iOS 5.0 и позже.

    • InConflict

      UIDocumentStateInConflict

      Конфликты существуют для файла документа, расположенного в fileURL. Можно получить доступ к этим конфликтным версиям документа путем вызова otherVersionsOfItemAtURL: метод класса NSFileVersion класс. Этот метод возвращает массив NSFileVersion объекты. Можно тогда разрешить конфликтные версии — например, программно попытаться объединить версии или представить версии документа пользователю и запросить его или ее выбрать ту.

      Доступный в iOS 5.0 и позже.

    • SavingError

      UIDocumentStateSavingError

      Была ошибка в сохранении или возвращении документ.

      Доступный в iOS 5.0 и позже.

    • EditingDisabled

      UIDocumentStateEditingDisabled

      Документ занят, и это не в настоящее время безопасно для пользовательских редактирований. Это состояние установлено как раз перед UIDocument вызовы disableEditing метод. Это вызывает enableEditing когда становится безопасно отредактировать снова. UIDocument когда ошибка предотвращает возвращение документа, также устанавливают это состояние.

      Доступный в iOS 5.0 и позже.

    Обсуждение

    A UIDocument объектно-ориентированные памяти текущее состояние документа в documentState свойство. Для получения уведомлений об изменениях в состоянии документа наблюдайте UIDocumentStateChangedNotification уведомление.

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 5.0 и позже.

  • Ключ, идентифицирующий документ, связался с пользовательским действием.

    Объявление

    Swift

    let NSUserActivityDocumentURLKey: String

    Objective C

    NSString* const NSUserActivityDocumentURLKey;

    Константы

    • NSUserActivityDocumentURLKey

      Ключ userInfo словарь NSUserActivity объект. Его значением является URL документа, связанного с пользовательским действием.

      Доступный в iOS 8.0 и позже.

  • Отправленный объектом документа, когда существует изменение в состоянии документа.

    При обработке этого уведомления проверьте значение documentState свойство для наблюдения то, что новое состояние, и затем продолжает соответственно. Существует нет userInfo словарь.

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 5.0 и позже.