我可以很容易地获得特定ID的记录。如果我需要特定的东西,那么我可以使用CKQueryOperation。如何获取特定ID的记录?
我需要为它提供适当的断言,但我不能指定ID作为谓语的参数,因为它不支持CKRecordValue协议。另一个想法是使用CKReference,但如何编写适当的谓词呢?
如果我尝试使用字符串数组和评估agains 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"}
任何帮助表示赞赏。
嗨,@Alex你知道如何从CKRecordID的UDID字符串?例如“AFF487BE-4A7E-4F76-8185-79FA2E1EFC33” – codingrhythm
嗨,@codingrhythm。你可以使用CKRecordID的recordName属性。 – Alex
你是对的,现在才意识到,多么愚蠢的问题。 – codingrhythm