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

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

Разработчик

Ссылка платформы CloudKit ссылка класса CKSubscription

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

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

CKSubscription

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

Объекты подписки не становятся активными, пока Вы не сохраняете их к серверу, и сервер имеет время для индексации их. Для сохранения объекта подписки используйте a CKModifySubscriptionsOperation возразите или saveSubscription:completionHandler: метод CKDatabase. Для аннулирования подписки удалите соответствующий объект подписки из сервера.

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

Обработка получающихся уведомлений нажатия

Когда рекордная модификация заставляет подписку стрелять, сервер отправляет уведомления нажатия всем устройствам с той подпиской за исключением той, внесшей исходное изменение в запись. Для сгенерированных подпиской уведомлений нажатия сервер может добавить данные к полезной нагрузке уведомления, указывающей условие, инициировавшее уведомление. В application:didReceiveRemoteNotification:fetchCompletionHandler: метод Вашего делегата приложения, предоставленного userInfo словарь содержит a CKNotificationInfoAppDataKey ключ с соответствующей информацией подписки. Значение этого ключа является другим словарем, содержание которого идентифицирует причину уведомления и соответствующего контейнера или записи.

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

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

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


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


Swift

import CloudKit

Objective C

@import CloudKit;

Доступность


Доступный в OS X v10.10 и позже.
  • Инициализирует и возвращает основанную на запросе подписку, контролирующую записи с указанными опциями.

    Объявление

    Swift

    convenience init!(recordType recordType: String!, predicate predicate: NSPredicate!, options subscriptionOptions: CKSubscriptionOptions)

    Objective C

    - (instancetype)initWithRecordType:(NSString *)recordType predicate:(NSPredicate *)predicate options:(CKSubscriptionOptions)subscriptionOptions

    Параметры

    recordType

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

    predicate

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

    subscriptionOptions

    Битовая маска параметров конфигурации для подписки. Необходимо указать по крайней мере одно из следующих значений: CKSubscriptionOptionsFiresOnRecordCreation, CKSubscriptionOptionsFiresOnRecordUpdate, или CKSubscriptionOptionsFiresOnRecordDeletion.

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

    Объект подписки, инициализированный к связанным с достижениями изменениям.

    Обсуждение

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

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

    Objective C

    @import CloudKit;

    Swift

    import CloudKit

    Доступность

    Доступный в OS X v10.10 и позже.

  • Инициализирует и возвращается, основанная на запросе подписка возражают, что записи мониторов и имеют собственное имя.

    Объявление

    Swift

    init!(recordType recordType: String!, predicate predicate: NSPredicate!, subscriptionID subscriptionID: String!, options subscriptionOptions: CKSubscriptionOptions)

    Objective C

    - (instancetype)initWithRecordType:(NSString *)recordType predicate:(NSPredicate *)predicate subscriptionID:(NSString *)subscriptionID options:(CKSubscriptionOptions)subscriptionOptions

    Параметры

    recordType

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

    predicate

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

    subscriptionID

    Уникальное имя подписки. Эта строка должна быть уникальной в указанной базе данных и не должна быть nil.

    subscriptionOptions

    Битовая маска параметров конфигурации для подписки. Необходимо указать по крайней мере одно из следующих значений: CKSubscriptionOptionsFiresOnRecordCreation, CKSubscriptionOptionsFiresOnRecordUpdate, или CKSubscriptionOptionsFiresOnRecordDeletion.

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

    Объект подписки, инициализированный к связанным с достижениями изменениям.

    Обсуждение

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

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

    Objective C

    @import CloudKit;

    Swift

    import CloudKit

    Доступность

    Доступный в OS X v10.10 и позже.

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

    Объявление

    Swift

    convenience init!(zoneID zoneID: CKRecordZoneID!, options subscriptionOptions: CKSubscriptionOptions)

    Objective C

    - (instancetype)initWithZoneID:(CKRecordZoneID *)zoneID options:(CKSubscriptionOptions)subscriptionOptions

    Параметры

    zoneID

    ID рекордной зоны, содержащей записи, Вы хотите контролировать. Этот параметр не должен быть nil.

    subscriptionOptions

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

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

    Объект подписки, инициализированный для отслеживания изменений в содержании рекордной зоны.

    Обсуждение

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

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

    Objective C

    @import CloudKit;

    Swift

    import CloudKit

    Доступность

    Доступный в OS X v10.10 и позже.

    См. также

    zoneID

  • init (zoneID:subscriptionID:options:) - initWithZoneID:subscriptionID:options: Определяемый инициализатор

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

    Объявление

    Swift

    init!(zoneID zoneID: CKRecordZoneID!, subscriptionID subscriptionID: String!, options subscriptionOptions: CKSubscriptionOptions)

    Objective C

    - (instancetype)initWithZoneID:(CKRecordZoneID *)zoneID subscriptionID:(NSString *)subscriptionID options:(CKSubscriptionOptions)subscriptionOptions

    Параметры

    zoneID

    ID рекордной зоны, содержащей записи, Вы хотите контролировать. Этот параметр не должен быть nil.

    subscriptionID

    Уникальное имя объекта подписки. Эта строка должна быть уникальной для всех других объектов подписки в контейнере. Этот параметр не должен быть nil.

    subscriptionOptions

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

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

    Объект подписки, инициализированный для отслеживания изменений в содержании рекордной зоны.

    Обсуждение

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

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

    Objective C

    @import CloudKit;

    Swift

    import CloudKit

    Доступность

    Доступный в OS X v10.10 и позже.

    См. также

    zoneID

  • zoneID zoneID Свойство

    ID рекордной зоны для контроля.

    Объявление

    Swift

    @NSCopying var zoneID: CKRecordZoneID!

    Objective C

    @property(nonatomic, copy) CKRecordZoneID *zoneID

    Обсуждение

    Значение этого свойства применяется и к основанным на запросе подпискам и к зональным подпискам. Указание рекордной зоны ограничивает поисковый объем записями в той зоне. В случае зональной подписки поиск охватывает все записи в зоне. Для основанной на запросе подписки поиск охватывает только записи определенного типа в той зоне.

    Для зональных подписок значение этого свойства установлено автоматически initWithZoneID:options: или initWithZoneID:subscriptionID:options: методы. Для всех других типов подписки значение по умолчанию nil. Для применения зоны к основанные на запросе подписки необходимо присвоить значение явно.

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

    Objective C

    @import CloudKit;

    Swift

    import CloudKit

    Доступность

    Доступный в OS X v10.10 и позже.

  • recordType recordType Свойство

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

    Объявление

    Swift

    var recordType: String! { get }

    Objective C

    @property(nonatomic, readonly, copy) NSString *recordType

    Обсуждение

    Значение этого свойства применяется только к основанным на запросе подпискам и установлено автоматически initWithRecordType:predicate:options: и initWithRecordType:predicate:subscriptionID:options: методы. Для всех других типов объектов подписки значение этого свойства проигнорировано и установлено в nil.

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

    Objective C

    @import CloudKit;

    Swift

    import CloudKit

    Доступность

    Доступный в OS X v10.10 и позже.

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

    Объявление

    Swift

    @NSCopying var predicate: NSPredicate! { get }

    Objective C

    @property(nonatomic, readonly, copy) NSPredicate *predicate

    Обсуждение

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

    Поисковый предикат определяет записи, которые объект подписки контролирует для изменений. Значение в этом свойстве используется только если subscriptionType свойство установлено в CKSubscriptionTypeQuery; иначе, это проигнорировано.

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

    Objective C

    @import CloudKit;

    Swift

    import CloudKit

    Доступность

    Доступный в OS X v10.10 и позже.

  • Данные конфигурации для уведомлений нажатия, отправленных подпиской.

    Объявление

    Swift

    @NSCopying var notificationInfo: CKNotificationInfo!

    Objective C

    @property(nonatomic, copy) CKNotificationInfo *notificationInfo

    Обсуждение

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

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

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

    Objective C

    @import CloudKit;

    Swift

    import CloudKit

    Доступность

    Доступный в OS X v10.10 и позже.

  • Тип поведения, предоставленного подпиской. (только для чтения)

    Объявление

    Swift

    var subscriptionType: CKSubscriptionType { get }

    Objective C

    @property(nonatomic, readonly, assign) CKSubscriptionType subscriptionType

    Обсуждение

    Значение этого свойства установлено автоматически во время создания. Используйте его для различения основанные на запросе подписки и тех, которые контролируют определенные типы данных.

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

    Objective C

    @import CloudKit;

    Swift

    import CloudKit

    Доступность

    Доступный в OS X v10.10 и позже.

  • Опции для инициирования уведомлений. (только для чтения)

    Объявление

    Swift

    var subscriptionOptions: CKSubscriptionOptions { get }

    Objective C

    @property(nonatomic, readonly, assign) CKSubscriptionOptions subscriptionOptions

    Обсуждение

    Установите значение этого свойства во время инициализации. При конфигурировании основанной на запросе подписки необходимо указать по крайней мере одно из следующих значений: CKSubscriptionOptionsFiresOnRecordCreation, CKSubscriptionOptionsFiresOnRecordUpdate, или CKSubscriptionOptionsFiresOnRecordDeletion.

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

    Objective C

    @import CloudKit;

    Swift

    import CloudKit

    Доступность

    Доступный в OS X v10.10 и позже.

  • subscriptionID subscriptionID Свойство

    Уникальный идентификатор для подписки. (только для чтения)

    Объявление

    Swift

    var subscriptionID: String! { get }

    Objective C

    @property(nonatomic, readonly, copy) NSString *subscriptionID

    Обсуждение

    Если Вы инициализируете объект подписки использование initWithRecordType:predicate:subscriptionID:options: или initWithZoneID:subscriptionID:options: методы, значение по умолчанию этого свойства установлено в значение, предоставленное теми методами. Во всех других случаях ID на основе UUID сгенерирован для Вас автоматически.

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

    Objective C

    @import CloudKit;

    Swift

    import CloudKit

    Доступность

    Доступный в OS X v10.10 и позже.

  • Константы, идентифицирующие поведение подписки.

    Объявление

    Swift

    enum CKSubscriptionType : Int { case Query case RecordZone }

    Objective C

    typedef enum : NSInteger { CKSubscriptionTypeQuery = 1, CKSubscriptionTypeRecordZone = 2, } CKSubscriptionType;

    Константы

    • Query

      CKSubscriptionTypeQuery

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

      Доступный в OS X v10.10 и позже.

    • RecordZone

      CKSubscriptionTypeRecordZone

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

      Доступный в OS X v10.10 и позже.

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

    Objective C

    @import CloudKit;

    Swift

    import CloudKit

    Доступность

    Доступный в OS X v10.10 и позже.

  • Параметры конфигурации для подписки.

    Объявление

    Swift

    struct CKSubscriptionOptions : RawOptionSetType { init(_ rawValue: UInt) init(rawValue rawValue: UInt) static var FiresOnRecordCreation: CKSubscriptionOptions { get } static var FiresOnRecordUpdate: CKSubscriptionOptions { get } static var FiresOnRecordDeletion: CKSubscriptionOptions { get } static var FiresOnce: CKSubscriptionOptions { get } }

    Objective C

    typedef enum : NSUInteger { CKSubscriptionOptionsFiresOnRecordCreation = 1 << 0, CKSubscriptionOptionsFiresOnRecordUpdate = 1 << 1, CKSubscriptionOptionsFiresOnRecordDeletion = 1 << 2, CKSubscriptionOptionsFiresOnce = 1 << 3, } CKSubscriptionOptions;

    Константы

    • FiresOnRecordCreation

      CKSubscriptionOptionsFiresOnRecordCreation

      Опция для генерации уведомления нажатия, когда запись, соответствующая критерии поиска в predicate свойство создается. Эта опция применяется только к основанным на запросе подпискам подписок.

      Доступный в OS X v10.10 и позже.

    • FiresOnRecordUpdate

      CKSubscriptionOptionsFiresOnRecordUpdate

      Опция для генерации уведомления нажатия, когда изменения внесены в поля записи, заставляющие запись соответствовать критерии поиска, указанные в predicate свойство. Эта опция применяется только к основанным на запросе подпискам.

      Доступный в OS X v10.10 и позже.

    • FiresOnRecordDeletion

      CKSubscriptionOptionsFiresOnRecordDeletion

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

      Доступный в OS X v10.10 и позже.

    • FiresOnce

      CKSubscriptionOptionsFiresOnce

      Опция для отправки уведомления нажатия только в один раз. После отправки уведомления нажатия сервер удаляет объект подписки. Эта опция применяется только к основанным на запросе подпискам.

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

      Доступный в OS X v10.10 и позже.

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

    Objective C

    @import CloudKit;

    Swift

    import CloudKit

    Доступность

    Доступный в OS X v10.10 и позже.