Post marked as solved
Post marked as solved with 1 replies, 108 views
I am interested in checking if a RecordZone has been shared. When I share a zone, I know there is a share record created in that zone. From Apple's CloudKit example:
func fetchOrCreateShare(contact: Contact) async throws -> (CKShare, CKContainer) {
guard let existingShare =
contact.associatedRecord.share else {
let share =
CKShare(rootRecord:contact.associatedRecord)
share[CKShare.SystemFieldKey.title] = "Contact: \.
(contact.name)"
_ = try await database.modifyRecords(saving:
[contact.associatedRecord, share], deleting: []).
return (share, container)
}
guard let share = try await database.record(for:
existingShare) as? CKShare else {
throw ViewModelError.invalidRemoteShare
}
return (share, container)
}
The first line of the method
guard let existingShare = contact.associatedRecord.share
checks if a specific record is being shared, but in the case of a shared zone, given a zone name, how can I check the .share of that zone? When I try CKRecordZone(zoneName: "Contacts").share, the value is nil even though the zone is being shared.