_defaultZone
let customZone = CKRecordZone(zoneName: "projectZone")
// Save the zone in the private database
let container = CKContainer(identifier: "...")
let privateDB = container.privateCloudDatabase
privateDB.save(customZone){ zone, error in
if let error = error{
print("Zone creation error: \(String(describing: error))")
}else{
print("Zone created: \(zone)")
}
}
CKShare
//Get a reference to the zone you created
let zoneID = CKRecordZoneID(zoneName: "projectZone", ownerName: CKCurrentUserDefaultName)
//Create a project record
let projectRecord = CKRecord(recordType: "Project", zoneID: zoneID)
projectRecord.setValue("My Cool Project", forKey: "name")
//Create a task record
let taskRecord = CKRecord(recordType: "Task", zoneID: zoneID)
taskRecord.setValue("My Task Name", forKey: "name")
//Create an association between the task and its parent project
let parentReference = CKReference(record: projectRecord, action: .deleteSelf)
taskRecord.setValue(parentReference, forKey: "project")
//When sharing, allow this task to be automatically shared if the parent project is shared
taskRecord.setParent(projectRecord)
name
String
project
Reference