2011-11-01 66 views
1

有没有一种方法来模拟Sub Select方法,而不需要拖出需要限制的整个集合。核心数据NSPredicate for(select ... where不在(select))

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

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

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

这是做到这一点的唯一方法还是有办法来限制对一个子查询,以便我没有得到一个查询我要反对限制的结果。

回答

2

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

我可能手动打开SQLite数据库并加入数据以获得我正在寻找的结果,但是如果我走了那条路线,我将失去核心数据的力量。

看来最好的方法是运行我想要的查询并取回我想要限制的对象,并将其放入arrayOfExcludedObjects。或者,我可以将我想要保留的对象添加到数组中,并添加一个谓词“(self IN%@)”,它可以完成同样的事情。

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

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