【问题标题】:Error saving CKRecord and CKShare in CKModifyRecordsOperation在 CKModifyRecordsOperation 中保存 CKRecord 和 CKShare 时出错
【发布时间】: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。有人可以解释一下为什么会这样吗?

提前致谢!

【问题讨论】:

    标签: swift cloudkit


    【解决方案1】:

    我明白了

    您所要做的就是创建一个私有的自定义 CKZone 并将您的 CKRecord 和 CKShare 保存在其中,您不能使用默认的区域云套件给您!

    【讨论】:

    • 您能否更新您的答案,表明您是通过代码还是在 CloudKit 仪表板中执行此操作的?
    【解决方案2】:

    要留下共享记录,您必须从 shared 数据库中删除 CKShare 记录,否则会出错。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-21
      • 2015-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-15
      • 2018-01-23
      • 1970-01-01
      相关资源
      最近更新 更多