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

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

Разработчик

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

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

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

NSItemProvider

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


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


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


Swift

import Foundation

Objective C

@import Foundation;

Доступность


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

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

Расширение обычно встречается с провайдерами элемента при исследовании attachments свойство NSExtensionItem объект. Во время того исследования расширение может использовать hasItemConformingToTypeIdentifier: метод для поиска данных, которые это распознает. Провайдеры элемента используют значения универсального идентификатора типа (UTI) для идентификации данных, которые они содержат. После нахождения типа данных, которые может использовать Ваше расширение, оно вызывает loadItemForTypeIdentifier:options:completionHandler: метод для загрузки фактических данных, поставленных предоставленному обработчику завершения.

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

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

  • Инициализирует и возвращает провайдера элемента с содержанием указанного файла.

    Объявление

    Swift

    convenience init?(contentsOfURL fileURL: NSURL!)

    Objective C

    - (instancetype)initWithContentsOfURL:(NSURL *)fileURL

    Параметры

    fileURL

    URL файла для использования для данных провайдера элемента. Провайдер элемента использует расширение файла для определения UTI для связанных данных.

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

    Провайдер элемента для указанного файла или nil если произошла ошибка.

    Обсуждение

    Используйте этот метод для инициализации провайдера элемента с содержанием файла.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • init (item:typeIdentifier:) - initWithItem:typeIdentifier: Определяемый инициализатор

    Инициализирует и возвращает провайдера элемента с указанным объектом и информацией о типе.

    Объявление

    Swift

    init(item item: NSSecureCoding?, typeIdentifier typeIdentifier: String?)

    Objective C

    - (instancetype)initWithItem:(id<NSSecureCoding>)item typeIdentifier:(NSString *)typeIdentifier

    Параметры

    item

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

    typeIdentifier

    Строка, представляющая UTI элемента. Если item не nil, этот параметр не должен быть nil.

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

    Провайдер элемента для указанного элемента.

    Обсуждение

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

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

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

    Объявление

    Swift

    func registerItemForTypeIdentifier(_ typeIdentifier: String, loadHandler loadHandler: NSItemProviderLoadHandler)

    Objective C

    - (void)registerItemForTypeIdentifier:(NSString *)typeIdentifier loadHandler:(NSItemProviderLoadHandler)loadHandler

    Параметры

    typeIdentifier

    Строка, представляющая желаемый UTI.

    loadHandler

    Блок, способный к возврату элемента данных как указанный тип. Для получения информации о реализации этого блока посмотрите NSItemProviderLoadHandler.

    Обсуждение

    Используйте этот метод для регистрации блоков, которые могут взять файл провайдера элемента или объект данных и преобразовать его в определенный формат данных. Ваш loadHandler когда клиент передает то же, блок выполняется typeIdentifier представьте в виде строки к loadItemForTypeIdentifier:options:completionHandler: метод. В реализации Вашего блока принудите данные к указанному типу и вызовите предоставленный обработчик завершения. Необходимо вызвать обработчик завершения, или с запрошенными данными или с ошибкой.

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

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • registeredTypeIdentifiers Свойство

    Массив типов поддерживается провайдером элемента. (только для чтения)

    Объявление

    Swift

    var registeredTypeIdentifiers: [AnyObject] { get }

    Objective C

    @property(copy, readonly, nonatomic) NSArray *registeredTypeIdentifiers

    Обсуждение

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

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

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

    Объявление

    Swift

    func hasItemConformingToTypeIdentifier(_ typeIdentifier: String) -> Bool

    Objective C

    - (BOOL)hasItemConformingToTypeIdentifier:(NSString *)typeIdentifier

    Параметры

    typeIdentifier

    Строка, представляющая желаемый UTI.

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

    YEStrue если провайдер элемента имеет данные указанного типа или может принудить его к тому типу. Возвраты NOfalse если провайдер элемента не может принудить данные к указанному типу.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Загружает данные элемента и принуждает его (по мере необходимости) к указанному типу.

    Объявление

    Swift

    func loadItemForTypeIdentifier(_ typeIdentifier: String, options options: [NSObject : AnyObject]?, completionHandler completionHandler: NSItemProviderCompletionHandler?)

    Objective C

    - (void)loadItemForTypeIdentifier:(NSString *)typeIdentifier options:(NSDictionary *)options completionHandler:(NSItemProviderCompletionHandler)completionHandler

    Параметры

    typeIdentifier

    Строка, представляющая желаемый UTI.

    options

    Словарь ключей и значений, предоставляющих информацию об элементе, таком как размер изображения. (См. NSItemProviderPreferredImageSizeKey для ключа можно использовать.)

    completionHandler

    Обработчик завершения блокирует для выполнения с результатами. Для получения информации о формате этого блока посмотрите NSItemProviderCompletionHandler.

    Обсуждение

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

    Информация о типе для первого параметра Вашего completionHandler блок должен быть установлен в класс ожидаемого типа. Например, запрашивая текстовые данные, Вы могли бы установить тип первого параметра к NSString или NSAttributedString. Провайдер элемента может выполнить простые преобразования типов данных к классу, от которого Вы указываете, такой как NSURL к NSData или NSFileWrapper, или от NSData к UIImage (в iOS) или NSImage (в OS X). Если данные не могли бы быть получены или принуждены к указанному классу, ошибка передается блоку завершения.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Загружает изображение предварительного просмотра для указанного элемента.

    Объявление

    Swift

    func loadPreviewImageWithOptions(_ options: [NSObject : AnyObject]!, completionHandler completionHandler: NSItemProviderCompletionHandler!)

    Objective C

    - (void)loadPreviewImageWithOptions:(NSDictionary *)options completionHandler:(NSItemProviderCompletionHandler)completionHandler

    Параметры

    options

    Словарь ключей и значений, предоставляющих информацию об элементе, таком как размер изображения. Для списка возможных ключей посмотрите Options Dictionary Key.

    completionHandler

    Обработчик завершения блокирует для выполнения с результатами. Первый параметр этого блока должен быть параметром типа NSData, NSURL, UIImage (в iOS), или NSImage (в OS X) для получения данных изображения. Для получения дополнительной информации о реализации блока, посмотрите NSItemProviderCompletionHandler.

    Обсуждение

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

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • previewImageHandler Свойство

    Пользовательский предварительный просмотр отображает блок обработчика для использования с этим провайдером элемента.

    Объявление

    Swift

    var previewImageHandler: NSItemProviderLoadHandler?

    Objective C

    @property(copy, nonatomic) NSItemProviderLoadHandler previewImageHandler

    Обсуждение

    Используйте это свойство для указания блока, способного к генерации изображения предварительного просмотра для данных провайдера элемента. Ваша кладка блоков изображения предварительного просмотра похожим способом к блокам, которые Вы регистрируете в методе FOO, за исключением того, что он всегда генерирует изображение. При генерации изображения, быть подготовленным возвратить его с помощью NSData, NSURL, UIImage (в iOS), или NSImage (в OS X) объект.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

Типы данных

  • Блок, получающий данные провайдера элемента.

    Объявление

    Swift

    typealias NSItemProviderCompletionHandler = (NSSecureCoding!, NSError!) -> Void

    Objective C

    typedef void (^NSItemProviderCompletionHandler)(id <NSSecureCoding> item, NSError *error);

    Обсуждение

    Используйте этот блок для получения данных от вызова до loadItemForTypeIdentifier:options:completionHandler: метод. Этот блок берет следующие параметры:

    item

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

    error

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

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Блок, загружающий данные провайдера элемента и принуждающий их к указанному типу.

    Объявление

    Swift

    typealias NSItemProviderLoadHandler = (NSItemProviderCompletionHandler!, AnyClass!, [NSObject : AnyObject]!) -> Void

    Objective C

    typedef void (^NSItemProviderLoadHandler)(NSItemProviderCompletionHandler completionHandler, Class expectedValueClass, NSDictionary *options);

    Обсуждение

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

    completionHandler

    Обработчик завершения для вызова с получающимися данными. Для получения информации об этом блоке посмотрите NSItemProviderCompletionHandler.

    expectedValueClass

    Ожидаемый класс загружаемого элемента. Преобразуйте данные провайдера элемента в этот тип и передайте полученный объект как первый параметр completionHandler блок.

    options

    Словарь с опциями для того, как обеспечить требуемый элемент. Например, словарь может содержать пиксельные размерности требуемого изображения. Для получения информации о поддерживаемых ключах посмотрите Options Dictionary Key.

    Когда клиент вызывает loadItemForTypeIdentifier:options:completionHandler: метод и запросы надлежащий тип, провайдер элемента выполняет Ваш блок. В Вашей реализации создайте объект ожидаемого типа и выполните блок в completionHandler параметр, передавая недавно созданный объект как первый параметр того блока. Если существует ошибка, передача nil для объекта и обеспечивают надлежащее NSError объект, объясняющий, что произошло.

    Этот тип блока также используется для генерации изображений предварительного просмотра. В случае изображения предварительного просмотра, expectedValueClass всегда a NSData, NSURL, UIImage (в iOS), или NSImage (в OS X) класс.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

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

    Объявление

    Swift

    let NSItemProviderPreferredImageSizeKey: String

    Objective C

    NSString * const NSItemProviderPreferredImageSizeKey;

    Константы

    • NSItemProviderPreferredImageSizeKey

      Ключ, указывающий размерности изображения в пикселях. Значение этого ключа NSValue объект, содержащий a CGSize или NSSize тип данных.

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

    Обсуждение

    Ключи используются в словаре, переданном options параметр a NSItemProviderLoadHandler блок.

  • Ключи, используемые в элементах списка свойств, полученных из или отправленный в код JavaScript.

    Объявление

    Swift

    let NSExtensionJavaScriptPreprocessingResultsKey: String let NSExtensionJavaScriptFinalizeArgumentKey: String

    Objective C

    NSString * const NSExtensionJavaScriptPreprocessingResultsKey; NSString * const NSExtensionJavaScriptFinalizeArgumentKey;

    Константы

    • NSExtensionJavaScriptPreprocessingResultsKey

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

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

    • NSExtensionJavaScriptFinalizeArgumentKey

      Ключ, значение которого является элементом типа kUTTypePropertyList. Элемент содержит NSDictionary это содержит параметры, которые будут переданы JavaScript, завершают метод.

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