首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CloudKit - NSPredicate用于查找引用列表中包含指定CKReference的所有记录

CloudKit - NSPredicate用于查找引用列表中包含指定CKReference的所有记录
EN

Stack Overflow用户
提问于 2014-08-07 18:03:16
回答 2查看 3.7K关注 0票数 4

我正在开发一个CloudKit支持的应用程序,它的用户记录类型具有“以下”引用列表属性。我正在尝试构建一个查询,以获取每个跟随指定用户(即指定用户在下面的引用列表中作为条目出现的用户)的用户。

目前,我正试图为NSPredicate构建CKQuery,如下所示:

代码语言:javascript
复制
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%@ IN following", [[CKReference alloc] initWithRecordID:currentUserID action:CKReferenceActionNone]];
CKQuery *query = [[CKQuery alloc] initWithRecordType:UserRecordType predicate:predicate];

CloudKit返回以下错误消息:

代码语言:javascript
复制
"Unknown Item" (11/2003); server message = "did not find required record type";

我觉得我可能在我的谓词中遗漏了一些非常直接的东西。任何帮助都将不胜感激!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-11 16:07:34

使用CONTAINS操作符测试列表成员资格:

代码语言:javascript
复制
CKReference* recordToMatch = [[CKReference alloc] initWithRecordID:currentUserID action:CKReferenceActionNone];
NSPredicate* predicate = [NSPredicate predicateWithFormat:@"following CONTAINS %@", recordToMatch];

如果要查询多个引用,则需要对列表中的每个引用使用复合谓词和谓词类型。

票数 6
EN

Stack Overflow用户

发布于 2014-11-29 02:35:46

错误11意味着查询无法在容器中找到与记录类型匹配的任何项。在您的示例中,Cloud中不存在UserRecordType类型记录。您可以为该类型创建一个样例模式,然后查询就可以工作了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25189158

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档