CoreData在保存期间比较错误

时间:2016-07-18 17:15:41

标签: ios objective-c core-data relationships

我在CoreData中从一对多关系中保存新对象/编辑现有对象时遇到一些问题。

我有一个与班级指示有To-Many关系的患者。

发生了什么: 我第一次从普通的工作流程创建一个Indication Object,它似乎都保存好了,但如果我尝试从Edit屏幕访问它,它会崩溃并出现SIGABRT并出现以下错误

-[Patient compare:]: unrecognized selector sent to instance 0x7fa991893ca0 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Patient compare:]: unrecognized selector sent to instance 0x7fa991893ca0'

如果我尝试从NSFetchedResultsController创建一个显示指示对象列表的新窗口,也会发生同样的情况。

我试图通过两种方式建立他们之间的关系:

indication = [NSEntityDescription insertNewObjectForEntityForName:@"Indication"     
inManagedObjectContext:appDelegate.managedObjectContext];
indication.patient = patient;

并通过CoreData的GeneratedAccessors:

[patient addIndicationObject:indication];

我在viewDidLoad期间验证这两个对象,以避免在我编辑现有对象时创建新的指示。但在这两种情况下我都会遇到同样的错误。

到目前为止,Haven找不到任何与此事有关的帖子。请帮忙。

1 个答案:

答案 0 :(得分:0)

经过几天的研究没有成功,最后我找到了一个能够对这个问题有所了解的帖子。

NSFetchedResultsControllerDelegate似乎“锁定”了NSManagedObjectContext,这就是我无法在同一个上下文中添加或更改任何内容的原因。

一旦我离开屏幕,我只需将委托设置为nil,现在一切似乎都工作正常。

感谢您对此帖的解决方案: Core data: Serious application error