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

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

Разработчик

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

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

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

CKRecordZone

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


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


Swift

import CloudKit

Objective C

@import CloudKit;

Доступность


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

A CKRecordZone объект определяет область для организации связанных записей в базе данных. Зоны являются важной частью того, как Вы организуете свои данные. Общедоступные и частные базы данных имеют единственную зону по умолчанию, и в частной базе данных можно создать дополнительные пользовательские зоны по мере необходимости. Используйте пользовательские зоны, чтобы расположить и инкапсулировать группы связанных записей в частной базе данных. Пользовательские зоны поддерживают другие возможности также, такие как возможность записать многократные записи как единственную атомарную транзакцию.

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

Используйте CKRecordZone класс как есть и не разделяет на подклассы.

Взаимодействие с рекордными зонами

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

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

После создания a CKRecordZone объект и сохранение его к базе данных, Вы не взаимодействуете с объектом очень. Вместо этого большинство взаимодействий происходит с его связанным CKRecordZoneID объект, который Вы используете для обращения к зоне при создании записей.

  • Возвращает зону по умолчанию для записей.

    Объявление

    Swift

    class func defaultRecordZone() -> CKRecordZone!

    Objective C

    + (CKRecordZone *)defaultRecordZone

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

    Рекордная зона по умолчанию для базы данных.

    Обсуждение

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

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

    Недостаток использования зоны по умолчанию для хранения записей - то, что это не имеет никаких специальных возможностей. Вы не можете сохранить группу записей на iCloud атомарно в зоне по умолчанию. Точно так же Вы не можете использовать a CKFetchRecordChangesOperation объект на записях в зоне по умолчанию.

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

    Objective C

    @import CloudKit;

    Swift

    import CloudKit

    Доступность

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

  • Инициализируйте и возвратите рекордный зональный объект с указанным именем.

    Объявление

    Swift

    init!(zoneName zoneName: String!)

    Objective C

    - (instancetype)initWithZoneName:(NSString *)zoneName

    Параметры

    zoneName

    Имя новой зоны. Имена зон в частной базе данных пользователя уникальны, состоят из символов ASCII, больше не, чем 255 символов и не запускаются с подчеркивания (_) символ. Один способ гарантировать уникальность имен зон состоит в том, чтобы создать строку на основе UUID, но можно также использовать другие методы.

    Если этот параметр nil или пустая строка, метод выдает исключение.

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

    Новая пользовательская зона или nil если не может быть создана зона.

    Обсуждение

    Используйте этот метод для создания новой рекордной зоны. Новая зона имеет имя, которое Вы обеспечиваете, и владелец зоны установлен в текущего пользователя. После создания зоны сохраните его к серверу с помощью a CKModifyRecordZonesOperation возразите или saveRecordZone:completion: метод CKDatabase класс. Необходимо сохранить зону к серверу прежде, чем попытаться сохранить любые записи на ту зону.

    Не используйте этот метод для создания a CKRecordZone объект, соответствующий зоне, уже существующей в базе данных. Если зона существует, выберите ее с помощью a CKFetchRecordZonesOperation возразите или fetchRecordZoneWithID:completion: метод CKDatabase класс.

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

    Objective C

    @import CloudKit;

    Swift

    import CloudKit

    Доступность

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

  • Инициализируйте и возвратите рекордный зональный объект с помощью указанного ID.

    Объявление

    Swift

    init!(zoneID zoneID: CKRecordZoneID!)

    Objective C

    - (instancetype)initWithZoneID:(CKRecordZoneID *)zoneID

    Параметры

    zoneID

    ID для новой зоны. Этот параметр не должен быть nil.

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

    Новая пользовательская зона или nil если не может быть создана зона.

    Обсуждение

    Используйте этот метод, когда Вы захотите создать новую рекордную зону на основе информации в зоне ID. После создания зоны сохраните его к серверу с помощью a CKModifyRecordZonesOperation возразите или saveRecordZone:completion: метод CKDatabase класс.

    Не используйте этот метод для создания a CKRecordZone объект, соответствующий зоне, уже существующей в базе данных. Если зона существует, выберите ее с помощью a CKFetchRecordZonesOperation возразите или fetchRecordZoneWithID:completion: метод CKDatabase класс.

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

    Objective C

    @import CloudKit;

    Swift

    import CloudKit

    Доступность

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

  • zoneID Свойство

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

    Объявление

    Swift

    var zoneID: CKRecordZoneID! { get }

    Objective C

    @property(nonatomic, readonly, strong) CKRecordZoneID *zoneID

    Обсуждение

    Зона ID содержит имя и информацию о владельце для зоны. Используйте это свойство для получения любого из тех значений.

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

    Objective C

    @import CloudKit;

    Swift

    import CloudKit

    Доступность

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

  • capabilities Свойство

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

    Объявление

    Swift

    var capabilities: CKRecordZoneCapabilities { get }

    Objective C

    @property(nonatomic, readonly, assign) CKRecordZoneCapabilities capabilities

    Обсуждение

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

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

    Для получения дополнительной информации о том, что можно сделать с определенными возможностями, посмотрите “CKRecordZoneCapabilities”.

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

    Objective C

    @import CloudKit;

    Swift

    import CloudKit

    Доступность

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

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

    Объявление

    Swift

    struct CKRecordZoneCapabilities : RawOptionSetType { init(_ rawValue: UInt) init(rawValue rawValue: UInt) static var FetchChanges: CKRecordZoneCapabilities { get } static var Atomic: CKRecordZoneCapabilities { get } }

    Objective C

    typedef enum CKRecordZoneCapabilities : NSUInteger { CKRecordZoneCapabilityFetchChanges = 1 << 0, CKRecordZoneCapabilityAtomic = 1 << 1, } CKRecordZoneCapabilities;

    Константы

    • FetchChanges

      CKRecordZoneCapabilityFetchChanges

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

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

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

    • Atomic

      CKRecordZoneCapabilityAtomic

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

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

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

    Objective C

    @import CloudKit;

    Swift

    import CloudKit

    Доступность

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

  • Имя зоны по умолчанию.

    Объявление

    Swift

    let CKRecordZoneDefaultName: String

    Objective C

    NSString * const CKRecordZoneDefaultName;

    Константы

    • CKRecordZoneDefaultName

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

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