在 CKModifyRecordsOperation 中保存 CKRecord 和 CKShare 时出错
Error saving CKRecord and CKShare in CKModifyRecordsOperation
我正在尝试保存一个 CKRecord(已经创建并保存到数据库)和一个新的 CKShare,但我一直收到这个错误:Optional("Failed to modify some records")。这是我的代码:
let csc = UICloudSharingController { controller, preparationCompletionHandler in
let share = CKShare(rootRecord: user)
share[CKShareTitleKey] = "My Share" as CKRecordValue
share.publicPermission = .readWrite
let mro = CKModifyRecordsOperation(recordsToSave: [user, share], recordIDsToDelete: nil)
mro.timeoutIntervalForRequest = 10
mro.timeoutIntervalForResource = 10
mro.modifyRecordsCompletionBlock = { records, recordIDs, error in
if error != nil {
print("ERROR IN MODIFY RECORDS COMPLETION BLOCK\n")
print(error?.localizedDescription)
}
preparationCompletionHandler(share,CKContainer.default(), error)
}
privateData.add(mro)
}
csc.availablePermissions = [.allowPrivate,.allowReadWrite]
self.present(csc, animated:true)
}
问题出在这个方法中:modifyRecordsCompletionBlock。有人可以向我解释为什么会这样吗?
提前致谢!
我知道了
你所要做的就是创建一个私有的自定义 CKZone 并将你的 CKRecord 和 CKShare 保存在其中,你不能使用 cloud kit 给你的默认区域!
要留下共享记录,您必须从 shared 数据库中删除 CKShare 记录,否则会出现错误。
我正在尝试保存一个 CKRecord(已经创建并保存到数据库)和一个新的 CKShare,但我一直收到这个错误:Optional("Failed to modify some records")。这是我的代码:
let csc = UICloudSharingController { controller, preparationCompletionHandler in
let share = CKShare(rootRecord: user)
share[CKShareTitleKey] = "My Share" as CKRecordValue
share.publicPermission = .readWrite
let mro = CKModifyRecordsOperation(recordsToSave: [user, share], recordIDsToDelete: nil)
mro.timeoutIntervalForRequest = 10
mro.timeoutIntervalForResource = 10
mro.modifyRecordsCompletionBlock = { records, recordIDs, error in
if error != nil {
print("ERROR IN MODIFY RECORDS COMPLETION BLOCK\n")
print(error?.localizedDescription)
}
preparationCompletionHandler(share,CKContainer.default(), error)
}
privateData.add(mro)
}
csc.availablePermissions = [.allowPrivate,.allowReadWrite]
self.present(csc, animated:true)
}
问题出在这个方法中:modifyRecordsCompletionBlock。有人可以向我解释为什么会这样吗?
提前致谢!
我知道了
你所要做的就是创建一个私有的自定义 CKZone 并将你的 CKRecord 和 CKShare 保存在其中,你不能使用 cloud kit 给你的默认区域!
要留下共享记录,您必须从 shared 数据库中删除 CKShare 记录,否则会出现错误。