2010-03-07 75 views
2

在我的核心数据模型,我有了一个Person实体“一对多”关系的课程实体(我也有一个倒“到一个”从课程到人的关系)。NSFetchedResultsController崩溃导航时从一个的UITableViewController到另一个

现在我有一个使用NSFetchedResultsController来显示其工作正常Person对象一个子类的UITableViewController。我有这样的设置,当你点击一个人时,它会发布另一个使用NSFetchedController的子类UITableViewController,以显示与该人相关的课程。

问题:我得到这个例外,每当我的人点击,并试图显示课程的UITableViewController ...

"Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'keypath name not found in entity <NSSQLEntity Course id=2>“”

就如何解决或解决任何想法

?两个ViewControllers之间的代码是除了被配置用于在一个“人”实体和“课程”的实体中另一个

+0

尝试nil NSFetchedResultsController的委托在viewWillDisappear: – digdog 2010-03-08 00:08:30

+0

所以课程实际上有一个名称属性? – 2010-03-08 01:55:56

回答

2

误差装置NSFetchedResultsController几乎相同在数据模型中不存在用于定义NSFetchedResultsController的关键路径,可能是关系。这些错误经常出现在谓词和排序定义中。

某处你已经有了一个路径类似” person.course.someattribute.somerelationship,而在你的模型,你有person.course.somerelationship,或者你可能只是拼写错误的东西,如钥匙名。

0

你访问的第二视图控制器中的第一个视图控制器获取的Person对象。如果你这样做,然后把一个明确的保留在第一executeFetchRequest,是这样的:。

[[[managedObjectContext executeFetchRequest:request error:&error] objectAtIndex:0] retain]; 

那是因为executeFetchRequest返回自动释放的对象,以便,那么你必须保留。希望对你有所帮助

相关问题