2014-07-17 85 views
0

我与核心数据的工作和我的两个表 列表 listItems中NSPredicate关系对象

listItems中有一个名为“parentlist”有目的地设置为“列表”

我关系试图查询时listItems所有listItems中whoes父是X(List对象)

我已经尝试过这种方法,但它不工作

List* myList; // Initialized form other views 
NSPredicate *pred = [NSPredicate predicateWithFormat:[NSString stringWithFormat:@"List == %@",myList]]; 
+0

这是核心数据?或者是内存中的列表? – gillyD

+0

@gillyD核心数据 – Kassem

回答

1

如果你有一个反比关系listItems(如苹果建议),你可以只使用:

myList.listItems 
+0

我已经结束了使用这种方法。谢谢 – Kassem

0

我假设你正在寻找的不是简单地通过列表访问时listItems其他的东西吗?如果是这样的话:
比较核心数据中的对象并不是真的那样工作。 您可以通过以下两种方式之一, 容易做到这一点:使用指定列表一个GUID在创建:

[[NSProcessInfo processInfo] globallyUniqueString] 

,并使用这个比较两个列表。

更难:通过覆盖比较和比较对象的方式,对对象实现比较功能,这种方式对您来说很有意义。

- (NSComparisonResult) compare : (List *) other; 

然后使用块创建一个NSPredicate。

您也可以使用一个GUID并在比较函数中使用它,从而允许您在稍后进行扩展。

1

您的代码有两个问题:在谓词中,您必须使用关系(“parentList”),而不是目标实体(“List”)。您不应该将字符串格式与 谓词格式混合。

要获得与给定列表中的所有listItems中,谓词是

List* myList = ...; 
NSPredicate *pred = [NSPredicate predicateWithFormat:@"parentList == %@", myList];