我在我的iPhone应用程序中使用Core Data。
我有两个实体:列表和项目,由多对多关系链接。 List中的关系名称是项目,而Item是列表。
我想从用户选择的列表中获取所有项目。
现在我正在尝试构建一个类似的谓词:
NSPredicate *basePredicate = [NSPredicate predicateWithFormat:@"lists IN %@", listsIds];
listsIds是一个ObjectIDs数组
但是当我运行该程序时,我收到了这个错误:
谓词的未实现SQL生成:(列出IN {0x594ac10})'
知道该怎么做吗?
谢谢!
答案 0 :(得分:1)
你甚至需要一个谓词吗?
如果用户选择List
个对象,那么要找到相关的Item
个对象,您只需走List.items
个关系。
假设您有一个由用户选择的List
对象数组。要获取一组相关的Item
对象,只需使用:
NSArray *itemArray=[listArray valueForKey:@"items"];
一旦在关系的一侧有一个对象,就可以找到所有其他对象而无需获取。
答案 1 :(得分:0)
试试这个:
NSPredicate *basePredicate = [NSPredicate predicateWithFormat:
@"ALL list.objectID IN %@", listsIds];
不确定您是否需要ALL
,所以您也可以尝试:
NSPredicate *basePredicate = [NSPredicate predicateWithFormat:
@"list.objectID IN %@", listsIds];