Как инициализировать CKRecord с помощью zoneID и recordID?
В настоящее время я создаю решение для синхронизации записей Core Data с записями CloudKit.
CKRecord возможно.
Я проверил документацию Apple CloudKit, экспериментировал и искал в интернете, но не нашел нужного мне ответа.
Я хотел бы инициализировать CKRecord с помощью zoneID, а также recordID, которые я бы предоставил в методе init.
Инициализатор, похоже, заставляет меня выбирать между ними. Я
хочу создайте свой собственный ZoneID (не используя default), а также установите recordID вместо его автогенерации.
Возможно ли это?
1 ответ:
Вы можете указать как идентификатор зоны, так и идентификатор записи, но это нужно сделать в три этапа:
Сначала создайте
CKRecordZoneIDс вашим идентификатором зоны и пользователем:let ckRecordZoneID = CKRecordZoneID(zoneName: "myZone", ownerName: CKOwnerDefaultName)Затем вы можете создать
CKRecordIDс требуемым идентификатором записи и указать вашCKRecordZoneID:let ckRecordID = CKRecordID(recordName: recordIDString, zoneID: ckRecordZoneID)Наконец, вы можете создать
CKRecord, используя этот идентификатор записи:let ckRecord = CKRecord(recordType: myRecordType, recordID: ckRecordID)