in Sharing/ViewModels/ViewModel.swift [130:155]
func addContact(
name: String,
phoneNumber: String,
completionHandler: @escaping (Result<Void, Error>) -> Void
) {
let id = CKRecord.ID(zoneID: recordZone.zoneID)
let contactRecord = CKRecord(recordType: "Contact", recordID: id)
contactRecord["name"] = name
contactRecord["phoneNumber"] = phoneNumber
let saveOperation = CKModifyRecordsOperation(recordsToSave: [contactRecord])
saveOperation.savePolicy = .allKeys
saveOperation.modifyRecordsCompletionBlock = { recordsSaved, _, error in
DispatchQueue.main.async {
if let error = error {
completionHandler(.failure(error))
debugPrint("Error adding contact: \(error)")
} else {
completionHandler(.success(()))
}
}
}
database.add(saveOperation)
}