Ios CloudKit-用于查找引用列表中包含指定CKReference的所有记录的NSPredicate
我正在开发一个由CloudKit支持的应用程序,其用户记录类型具有“following”引用列表属性。我正在尝试构造一个查询,以获取跟随指定用户的每个用户(即,其中指定用户作为条目出现在以下引用列表中的那些用户) 我目前正在尝试为Ios CloudKit-用于查找引用列表中包含指定CKReference的所有记录的NSPredicate,ios,nspredicate,cloudkit,Ios,Nspredicate,Cloudkit,我正在开发一个由CloudKit支持的应用程序,其用户记录类型具有“following”引用列表属性。我正在尝试构造一个查询,以获取跟随指定用户的每个用户(即,其中指定用户作为条目出现在以下引用列表中的那些用户) 我目前正在尝试为CKQuery构建我的NSPredicate,如下所示: NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%@ IN following", [[CKReference alloc] initWit
CKQuery
构建我的NSPredicate
,如下所示:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%@ IN following", [[CKReference alloc] initWithRecordID:currentUserID action:CKReferenceActionNone]];
CKQuery *query = [[CKQuery alloc] initWithRecordType:UserRecordType predicate:predicate];
和CloudKit返回以下错误消息:
"Unknown Item" (11/2003); server message = "did not find required record type";
我觉得我的谓词中可能遗漏了一些非常直接的东西。任何帮助都将不胜感激 使用包含运算符测试列表成员资格:
CKReference* recordToMatch = [[CKReference alloc] initWithRecordID:currentUserID action:CKReferenceActionNone];
NSPredicate* predicate = [NSPredicate predicateWithFormat:@"following CONTAINS %@", recordToMatch];
如果要查询多个引用,则需要对列表中的每个引用使用带和谓词类型的复合谓词。错误11表示查询无法在容器中找到与记录类型匹配的任何项。在您的情况下,云工具包中不存在UserRecordType记录。您可以为该类型创建一个示例架构,然后查询将工作。这将不起作用,因为
后面的字段是一个引用列表,而不是一个引用。我知道,在这种情况下,我已经更新了引用列表的答案。因此,这正是我需要的,这非常有效。谢谢我很好奇你怎么能查询用户记录?据我所知,这是被禁止的。它确实存在于CloudKit中。看一下标记为正确的答案。好的,谢谢。我得到了错误11,我的原因是记录不存在。