用例:我想获取给定实体的所有对象。无论出于何种原因,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];
...返回......
它不像我以前没有使用过相同的代码......甚至在不同实体的同一个应用程序中,代码运行正常。
我的解决方法:我现在的解决方法是设置假谓词,检查结果是否不是假身份证。但当然它并不漂亮,我想了解为什么核心数据很奇怪。
答案 0 :(得分:1)
正如评论中所推测的那样,这种现象的唯一理论解释似乎是Person
是所有其他实体的父实体。
如果在模型检查器中,您的实体看起来像这样:
那么这就是问题所在。
也许您想要一个关系并将其与父实体相混淆?