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

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

Разработчик

Ссылка платформы основы ссылка на протокол NSFilePresenter

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

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

NSFilePresenter

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


Не применимый

Соответствует


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


Swift

import Foundation

Objective C

@import Foundation;

Доступность


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

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

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

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

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

Предъявители файла и iOS

Если Ваше приложение вводит фон с активным предъявителем файла, какие-либо другие процессы, выполняющие скоординированное чтение, или запись на представленном файле может зайти в тупик. Для предотвращения этой ситуации вызвать removeFilePresenter: удалить предъявителя файла в applicationDidEnterBackground: метод или в ответ на a UIApplicationDidEnterBackgroundNotification уведомление. Вызвать addFilePresenter: добавить предъявителя файла снова в applicationWillEnterForeground: метод или в ответ на a UIApplicationWillEnterForegroundNotification уведомление.

  • presentedItemURL Свойство

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

    Объявление

    Swift

    @NSCopying var presentedItemURL: NSURL? { get }

    Objective C

    @property(readonly, copy) NSURL *presentedItemURL

    Обсуждение

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

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

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • presentedItemOperationQueue Свойство

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

    Объявление

    Swift

    var presentedItemOperationQueue: NSOperationQueue { get }

    Objective C

    @property(readonly, retain) NSOperationQueue *presentedItemOperationQueue

    Обсуждение

    Поскольку другие объекты и процессы взаимодействуют с представленным элементом, системные очереди соответствующие сообщения для этого объекта предъявителя на очереди работы в этом свойстве. Например, когда другой процесс пытается считать файл, представленный этим объектом, система помещает вызов этого объекта relinquishPresentedItemToReader: метод на очереди для выполнения. Другой процесс должен ожидать для чтения файла, пока тот метод не исключается из очереди и выполняется. Запросы на представленный URL объекта не обрабатываются на этой очереди.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

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

    Объявление

    Swift

    optional func relinquishPresentedItemToReader(_ reader: ((() -> Void)!) -> Void)

    Objective C

    - (void)relinquishPresentedItemToReader:(void (^)(void (^reacquirer)(void)))reader

    Параметры

    reader

    Блочный объект, берущий другой блок в качестве параметра и не возвращающий значения. reacquirer блок является тем, который Вы передаете reader блокируйте так, чтобы Ваш объект мог быть уведомлен когда reader сделан. Если Ваш объект не должен быть уведомлен, он может передать nil для reacquirer блок.

    Обсуждение

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

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

    • - (void)relinquishPresentedItemToReader:(void (^)(void (^reacquirer)(void))) reader
    • {
    • // Prepare for another object to read the file.
    • self.fileIsWritable = NO;
    • // Now let the reader know that it can have the file.
    • // But pass a reacquisition block so that this object
    • // can update itself when the reader is done.
    • reader(^{
    • self.fileIsWritable = YES;
    • });
    • }

    Ваша реализация этого метода выполняется с помощью очереди в presentedItemOperationQueue свойство. Ваш блок reacquirer выполняется на очереди, связанной с читателем.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

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

    Объявление

    Swift

    optional func relinquishPresentedItemToWriter(_ writer: ((() -> Void)!) -> Void)

    Objective C

    - (void)relinquishPresentedItemToWriter:(void (^)(void (^reacquirer)(void)))writer

    Параметры

    writer

    Блочный объект, берущий другой блок в качестве параметра и не возвращающий значения. reacquirer блок является тем, который Вы передаете writer блокируйте так, чтобы Ваш объект мог быть уведомлен когда writer сделан. Если Ваш объект не должен быть уведомлен, он может передать nil для reacquirer блок.

    Обсуждение

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

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

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

    • - (void)relinquishPresentedItemToWriter:(void (^)(void (^reacquirer)(void))) writer
    • {
    • // Prepare for another object to write to the file.
    • self.fileIsWritable = NO;
    • // Now let the writer know that it can have the file.
    • // But pass a reacquisition block so that this object
    • // can update itself when the writer is done.
    • writer(^{
    • self.fileIsWritable = YES;
    • });
    • }

    Ваша реализация этого метода выполняется с помощью очереди в presentedItemOperationQueue свойство. Ваш блок reacquirer выполняется на очереди, связанной с писателем.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

    См. также

    – presentedItemDidChange

  • Говорит Вашему объекту сохранить любые несохраненные изменения для представленного элемента.

    Объявление

    Swift

    optional func savePresentedItemChangesWithCompletionHandler(_ completionHandler: (NSError!) -> Void)

    Objective C

    - (void)savePresentedItemChangesWithCompletionHandler:(void (^)(NSError *errorOrNil))completionHandler

    Параметры

    completionHandler

    Блочный объект вызвать после сохранения изменений. Если Вы сохранили свои изменения успешно, передачу nil для блока errorOrNil параметр; иначе, передайте ошибочный объект указание, почему не могли быть сохранены изменения.

    Обсуждение

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

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Говорит Вашему объекту, что его представленный элемент собирается быть удаленным.

    Объявление

    Swift

    optional func accommodatePresentedItemDeletionWithCompletionHandler(_ completionHandler: (NSError!) -> Void)

    Objective C

    - (void)accommodatePresentedItemDeletionWithCompletionHandler:(void (^)(NSError *errorOrNil))completionHandler

    Параметры

    completionHandler

    Блочный объект вызвать после обновления Ваших структур данных. Передача nil к блоку errorOrNil параметр, если Вы смогли успешно подготовиться к удалению элемента. Передайте ошибочный объект, если Ваш объект не мог бы подготовиться должным образом.

    Обсуждение

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

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Говорит Вашему объекту, что был переименован представленный перемещенный элемент или.

    Объявление

    Swift

    optional func presentedItemDidMoveToURL(_ newURL: NSURL)

    Objective C

    - (void)presentedItemDidMoveToURL:(NSURL *)newURL

    Параметры

    newURL

    URL, содержащий новый путь к представленному элементу.

    Обсуждение

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

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

    См. также

    presentedItemURL

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

    Объявление

    Swift

    optional func presentedItemDidChange()

    Objective C

    - (void)presentedItemDidChange

    Обсуждение

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

    Поскольку этот метод уведомляет Вас и относительно атрибута и относительно изменений содержания, Вы могли бы хотеть проверить дату модификации прежде напрасно перечитать содержание файла. Когда объект в последний раз внесенные изменения в файл и сравнивает ту дату с текущей датой модификации элемента, чтобы сделать это, необходимо сохранить дату. Используйте coordinateReadingItemAtURL:options:error:byAccessor: метод координатора файла для обеспечения эксклюзивного доступа к файлу при чтении текущей даты модификации.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

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

    Объявление

    Swift

    optional func presentedItemDidGainVersion(_ version: NSFileVersion)

    Objective C

    - (void)presentedItemDidGainVersion:(NSFileVersion *)version

    Параметры

    version

    Объект версии файла, содержащий информацию о новой версии файла.

    Обсуждение

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

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

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

    Объявление

    Swift

    optional func presentedItemDidLoseVersion(_ version: NSFileVersion)

    Objective C

    - (void)presentedItemDidLoseVersion:(NSFileVersion *)version

    Параметры

    version

    Объект версии файла, содержащий информацию об удаленной версии.

    Обсуждение

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

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Говорит делегату, что некоторый другой объект разрешил конфликт версий для файла предъявителя или пакета файла. (требуемый)

    Объявление

    Swift

    optional func presentedItemDidResolveConflictVersion(_ version: NSFileVersion)

    Objective C

    - (void)presentedItemDidResolveConflictVersion:(NSFileVersion *)version

    Параметры

    version

    Объект версии, содержащий конфликтное изменение.

    Обсуждение

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

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Говорит делегату, что элемент в представленном каталоге получил новую версию. (требуемый)

    Объявление

    Swift

    optional func presentedSubitemAtURL(_ url: NSURL, didGainVersion version: NSFileVersion)

    Objective C

    - (void)presentedSubitemAtURL:(NSURL *)url didGainVersion:(NSFileVersion *)version

    Параметры

    url

    URL элемента в представленном каталоге, получившем новую версию. Элемент не должен быть на верхнем уровне представленного каталога, но может самостоятельно быть во вложенном подкаталоге.

    version

    Объект версии файла, содержащий информацию о новой версии файла.

    Обсуждение

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

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Говорит делегату, что элемент в представленном каталоге потерял существующую версию. (требуемый)

    Объявление

    Swift

    optional func presentedSubitemAtURL(_ url: NSURL, didLoseVersion version: NSFileVersion)

    Objective C

    - (void)presentedSubitemAtURL:(NSURL *)url didLoseVersion:(NSFileVersion *)version

    Параметры

    url

    URL элемента в представленном каталоге, потерявшем версию. Элемент не должен быть на верхнем уровне представленного каталога, но может самостоятельно быть во вложенном подкаталоге.

    version

    Объект версии файла, содержащий информацию об удаленной версии.

    Обсуждение

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

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Говорит делегату, что элементу в представленном каталоге разрешил конфликт версий внешний объект. (требуемый)

    Объявление

    Swift

    optional func presentedSubitemAtURL(_ url: NSURL, didResolveConflictVersion version: NSFileVersion)

    Objective C

    - (void)presentedSubitemAtURL:(NSURL *)url didResolveConflictVersion:(NSFileVersion *)version

    Параметры

    url

    URL элемента в представленном каталоге, который был в конфликте. Элемент не должен быть на верхнем уровне представленного каталога, но может самостоятельно быть во вложенном подкаталоге.

    version

    Объект версии, содержащий конфликтное изменение.

    Обсуждение

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

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Говорит делегату, что некоторый объект хочет удалить элемент, который является в представленном каталоге. (требуемый)

    Объявление

    Swift

    optional func accommodatePresentedSubitemDeletionAtURL(_ url: NSURL, completionHandler completionHandler: (NSError!) -> Void)

    Objective C

    - (void)accommodatePresentedSubitemDeletionAtURL:(NSURL *)url completionHandler:(void (^)(NSError *errorOrNil))completionHandler

    Параметры

    url

    URL элемента, удаляемого из представленного каталога. Элемент не должен быть на верхнем уровне представленного каталога, но может самостоятельно быть во вложенном подкаталоге.

    completionHandler

    Блочный объект вызвать после обновления Ваших структур данных. Передача nil к блоку errorOrNil параметр, если Вы смогли успешно подготовиться к удалению элемента. Передайте ошибочный объект, если Ваш объект не мог бы подготовиться должным образом.

    Обсуждение

    Этот метод важен для приложений тот существующие каталоги. Это могло бы произойти, если делегат управляет содержанием каталога или управляет файлом, реализованным как пакет файла. Когда вызвано, Ваша реализация этого метода должна принять любые меры, должен был обновить Ваше приложение для обработки удаления указанного файла.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Говорит делегату, что элемент был добавлен к представленному каталогу. (требуемый)

    Объявление

    Swift

    optional func presentedSubitemDidAppearAtURL(_ url: NSURL)

    Objective C

    - (void)presentedSubitemDidAppearAtURL:(NSURL *)url

    Параметры

    url

    URL элемента, добавляемого к представленному каталогу. Элемент не должен быть на верхнем уровне представленного каталога, но может самостоятельно быть во вложенном подкаталоге.

    Обсуждение

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

    Если представленный каталог является пакетом файла, системные вызовы presentedItemDidChange метод, если Ваш делегат не реализует этот метод.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Говорит делегату что элемент в представленном каталоге, перемещенном в новое расположение. (требуемый)

    Объявление

    Swift

    optional func presentedSubitemAtURL(_ oldURL: NSURL, didMoveToURL newURL: NSURL)

    Objective C

    - (void)presentedSubitemAtURL:(NSURL *)oldURL didMoveToURL:(NSURL *)newURL

    Параметры

    oldURL

    Исходный URL элемента в представленном каталоге. Элемент не должен быть на верхнем уровне представленного каталога, но может самостоятельно быть во вложенном подкаталоге.

    newURL

    Новый URL для элемента. Этот URL может или не может быть расположен в представленном каталоге.

    Обсуждение

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

    Если представленный каталог является пакетом файла, системные вызовы presentedItemDidChange метод, если Ваш делегат не реализует этот метод.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Говорит делегату что содержание или атрибуты указанного измененного элемента. (требуемый)

    Объявление

    Swift

    optional func presentedSubitemDidChangeAtURL(_ url: NSURL)

    Objective C

    - (void)presentedSubitemDidChangeAtURL:(NSURL *)url

    Параметры

    url

    URL элемента в изменившемся представленном каталоге. Элемент не должен быть на верхнем уровне представленного каталога, но может самостоятельно быть во вложенном подкаталоге.

    Обсуждение

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

    Если представленный каталог является пакетом файла, системные вызовы presentedItemDidChange метод, если Ваш делегат не реализует этот метод.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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