核心数据NSPredicate(选择...不在(选择))

时间:2011-11-01 21:54:13

标签: ios core-data nspredicate

有没有办法模拟子选择方法而不会拉出你想要限制的整个集合。

在这个问题上 Core Data: Query objectIDs in a predicate?

他们演示了使用非限制。但它显示了使用您想要限制的对象列表。

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"NOT (self IN %@)", arrayOfExcludedObjects];

这是唯一的方法吗?还是有办法限制子查询,所以我不必得到我想限制的查询结果。

1 个答案:

答案 0 :(得分:2)

事实证明,似乎没有办法在CoreData中进行连接。

我可以手动打开SQLite数据库并加入数据以获得我想要的结果,但如果我走这条路线,我会失去核心数据的力量。

实现此目的的最佳方法似乎是运行我想要的查询并获取我想要限制的对象,并将它们放入arrayOfExcludedObjects中。或者,我可以将我想要保留的对象添加到数组中,并添加带有“(self IN%@)”的谓词,它将完成相同的操作。

我通过核心数据获得的额外功能偶尔会丢失其他功能。

也许有一天苹果会添加这些类型的谓词。