CKRecordZone
Соответствует
-
AnyObject
-
CVarArgType
-
Сопоставимый
-
Hashable
-
NSCoding
-
NSCopying
-
NSObjectProtocol
-
NSSecureCoding
-
Печатаемый
-
NSCopying
-
NSObject
-
NSSecureCoding
Оператор импорта
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
объект, соответствующий зоне, уже существующей в базе данных. Если зона существует, выберите ее с помощью aCKFetchRecordZonesOperation
возразите или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
объект, соответствующий зоне, уже существующей в базе данных. Если зона существует, выберите ее с помощью aCKFetchRecordZonesOperation
возразите или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(rawValuerawValue
: 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
возразите для выборки только значений, изменившихся, и используйте возвращенные данные для обновления кэшей. Выполнение так минимизирует объем данных, который Вы получаете от сервера. Можно все еще выбрать всю запись с помощью aCKFetchRecordsOperation
возразите, хотите ли Вы.Доступный в 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;
Константы