把那满足谓词的实体甚至一些具有空对象的父

问题描述:

我试图使用谓词NSFetchReultController提取记录把那满足谓词的实体甚至一些具有空对象的父

NSNumber *project_id=[[_options objectForKey:@"project"] objectForKey:@"server_id"]; 

predicate=[NSPredicate predicateWithFormat:@"(owner.user_id = %@ OR Any jarSharedToUsers.user_id = %@) AND status = %@ AND parentProject.project_id = %@ ",user.user_id,user.user_id,[NSNumber numberWithInt:1],project_id]; 

错误:终止应用程序由于未捕获的异常“NSInvalidArgumentException”,原因是:“的keyPath parentProject .project_id未在实体中找到'

我认为这是由于parentProject对于某些实体为空。但是接下来我如何获得满足谓词的实体

如果尝试访问不存在的NSManagedObject的属性,通常会引发此错误。你重新检查了你的dataModel吗?从项目到parentProject的关系是否设置正确? parentProject是否有一个名为project_id的实体?

在更改DataModel后,您更新了NSManagedObject类吗?

还有:在您更改dataModel之后,您是否完全从应用程序中清除应用程序(或者在使用该应用程序时重置模拟器)?对dataModel的更改仅适用于干净构建或者使用迁移模型。

+0

问题是,一些NSManagedObject有一个关系,有些不具备这种关系。 – 2014-11-06 12:22:33