HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – Cloudkit:“提供的ZoneId与目标区域不匹配”大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_419_2@ @H_801_2@
我有这段代码

func saveProfileForcheck(check: check) {
    let toSave = CKRecord(recordType: "check",zonEID: sharedStore.checksID!)
    let profile = check.profile as Profile!
    toSave.SETVALue(NSString(format: "%i",check.closed),forKey: "closed")
    toSave.SETVALue(check.date,forKey: "date")
    toSave.SETVALue(NSString(format: "%i",check.paid),forKey: "paid")
    toSave.SETVALue(CKReference(recordID: profile.dbRecordID,action: CKReferenceAction.deleteSelf),forKey: "profile")

    let operation = CkmodifyRecordsOperation(recordsToSave: [toSave],recordIDsTodelete: [check.id])
    operation.modifyRecordsCompletionBlock = { (savedRecords,deletedRecordIDs,error) in
        if error != nil {
            self.delegate?.cloudKitReturnedError(error!)
        } else {
            self.modifiedcheck(check,newRecord: savedRecords![0] as CKRecord )

        }
    }
    privateDB.addoperation(operation)
}

它应该在我的checks RecordZone中的check对象上保存配置文件属性.当我触发此功能时,我收到此错误

<CKError 0x7f8c2046d630: "Partial Failure" (2/1011); "Failed to modify some records"; uuid = EF4CCE3F-3CDB-4506-BA43-464D7D9BD0F6; container ID = "mycontainer"; partial errors: {
130BD962-295C-4601-9343-2E4F4014C8C7:(checks:__defaultowner__) = <CKError 0x7f8c2045c680: "Invalid Arguments" (12/2006); server message = "ZonEID provided doesn't match target zone">
... 1 "Batch request Failed" CKError's omited ...

}>

我尝试了几件事:

>检查zonEID是否实际正确.
>将zonEID硬编码为方法中的CKRecordZonEID对象.
>查看谷歌和SO上的错误,这没有结果.

请注意,sharedstore.checksID是一个实际的ID而不是字符串,它是在获取所有记录区域时在应用程序启动时创建的.

我怎么能解决这个错误?任何建议都将受到高度赞赏.

@H_801_2@

解决方法

@H_675_29@ 你必须在操作上设置zonEID,如:

operation.zonEID = CKRecordZonEID(zonename: sharedStore.checksID!,ownerName: "your name")

更新:如下所述,.zonEID仅适用于CKQqueryOperation,而不适用于CkmodifyRecordsOperation

我相信只能将CKReference设置为同一区域中的记录.是这样的吗?如果没有,那么你可以尝试保存没有该引用的记录吗?

从文档:

更新:如果引用的源和目标位于认区域中,则可以跨数据库(公共和私有)添加引用.

@H_801_2@ @H_801_2@
@H_801_2@
@H_419_2@ @H_801_2@

大佬总结

以上是大佬教程为你收集整理的ios – Cloudkit:“提供的ZoneId与目标区域不匹配”全部内容,希望文章能够帮你解决ios – Cloudkit:“提供的ZoneId与目标区域不匹配”所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。