在 CKModifyRecordsOperation 中保存 CKRecord 和 CKShare 时出错
Posted
技术标签:
【中文标题】在 CKModifyRecordsOperation 中保存 CKRecord 和 CKShare 时出错【英文标题】:Error saving CKRecord and CKShare in CKModifyRecordsOperation 【发布时间】:2016-11-16 20:19:54 【问题描述】:我正在尝试保存一个 CKRecord(已经创建并保存到数据库)和一个新的 CKShare,但我不断收到此错误:可选(“无法修改某些记录”) .这是我的代码:
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。有人可以解释一下为什么会这样吗?
提前致谢!
【问题讨论】:
【参考方案1】:我明白了
您所要做的就是创建一个私有的自定义 CKZone 并将您的 CKRecord 和 CKShare 保存在其中,您不能使用默认的区域云套件给您!
【讨论】:
您能否更新您的答案,表明您是通过代码还是在 CloudKit 仪表板中执行此操作的?【参考方案2】:要留下共享记录,您必须从 shared 数据库中删除 CKShare 记录,否则会出错。
【讨论】:
以上是关于在 CKModifyRecordsOperation 中保存 CKRecord 和 CKShare 时出错的主要内容,如果未能解决你的问题,请参考以下文章
在 React 应用程序中在哪里转换数据 - 在 Express 中还是在前端使用 React?