【问题标题】:CoreData compare Error during Save保存期间CoreData比较错误
【发布时间】:2016-07-18 17:15:40
【问题描述】:

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

我有一个类 Patient 与类 Indication 具有 To-Many 关系。

正在发生的事情是: 第一次从正常工作流程创建指示对象时,一切似乎都可以保存,但如果我尝试从编辑屏幕访问它,它会因 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 期间验证这两个对象,以避免在编辑现有的指示时创建新的指示。但在这两种情况下,我都会遇到同样的错误。

到目前为止,还没有找到任何与此问题相关的帖子。请帮忙。

【问题讨论】:

    标签: ios objective-c core-data relationships


    【解决方案1】:

    经过几天的研究但没有成功,我终于找到了一篇文章,设法解决了这个问题。

    碰巧 NSFetchedResultsControllerDelegate 似乎“锁定”了 NSManagedObjectContext,这就是为什么我无法在同一上下文中添加或更改任何内容。

    我只需要在离开屏幕后将代理设置为 nil,现在一切似乎都正常。

    感谢这篇文章的解决方案: Core data: Serious application error

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-14
      • 1970-01-01
      • 2018-02-20
      • 2020-08-12
      相关资源
      最近更新 更多