加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

swift – 如何获取具有特定ID的记录?

发布时间:2020-12-14 04:32:47 所属栏目:百科 来源:网络整理
导读:我可以很容易地获得具有特定ID的记录.如果我需要特定的东西,那么我可以使用CKQueryOperation. 我需要为它提供正确的谓词,但我不能将ID指定为谓词的参数,因为它不支持CKRecordValue协议.另一个想法是使用CKReference,但是如何编写正确的谓词呢? 如果我尝试使
我可以很容易地获得具有特定ID的记录.如果我需要特定的东西,那么我可以使用CKQueryOperation.

我需要为它提供正确的谓词,但我不能将ID指定为谓词的参数,因为它不支持CKRecordValue协议.另一个想法是使用CKReference,但是如何编写正确的谓词呢?

如果我尝试使用字符串数组并再次评估recordID.recordName键路径:

var references:[String] = IDs.map{$0.recordName}
    var predicate = NSPredicate(format: "ANY recordID.recordName IN %@",references)

我收到以下错误:

<CKError 0x17005f3b0: "Invalid Arguments" (12/1009); "Invalid predicate: recordKey (recordID.recordName) contains invalid characters">

谓词格式输出:

predicate ANY recordID.recordName IN {"AFF487BE-4A7E-4F76-8185-79FA2E1EFC33","D4D83B37-97DE-4BF2-9E43-4C5522E36DF1","0126008A-0B42-4F95-AB31-BB13B6215475","6DE83AD9-F307-467D-A5EF-AD2B97B8E7F7","F701ADBF-9BE7-4F42-8CA9-44D2D0E629F8","38C4FB60-8A65-43F9-8E1E-4C48D5B60DCD"}

任何帮助表示赞赏.

解决方法

您可以使用CKFetchRecordsOperation来获取您已知道其RecordID的记录:

let fetchRecordsOperation = CKFetchRecordsOperation(recordIDs: recordIDs)
fetchRecordsOperation.desiredKeys = desiredKeys

使用您要检索的CKRecordID数组启动操作,它将返回perRecordCompletionBlock中的每个单独记录结果以及fetchRecordsCompletionBlock中获取的所有记录.

您可以通过将NSStrings数组设置为desiredKeys属性并使用您要检索的字段的名称来默认检索完整记录或仅检索其值的子集.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读