Core Data fetch返回setEntity以外的记录

时间:2015-11-19 19:21:14

标签: objective-c core-data

用例:我想获取给定实体的所有对象。无论出于何种原因,fetch不仅返回set实体类型(= Person)的记录,还返回所有其他记录(= Provider,Work,...):

NSEntityDescription *entityDesc =
[NSEntityDescription entityForName:@"Person"
            inManagedObjectContext:self.context];

NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entityDesc];

NSError *error;
NSArray *objects = [self.context executeFetchRequest:request
                                               error:&error];

...返回......

enter image description here

它不像我以前没有使用过相同的代码......甚至在不同实体的同一个应用程序中,代码运行正常。

我的解决方法:我现在的解决方法是设置假谓词,检查结果是否不是假身份证。但当然它并不漂亮,我想了解为什么核心数据很奇怪。

1 个答案:

答案 0 :(得分:1)

正如评论中所推测的那样,这种现象的唯一理论解释似乎是Person是所有其他实体的父实体。

如果在模型检查器中,您的实体看起来像这样:

那么这就是问题所在。

也许您想要一个关系并将其与父实体相混淆?