保存和重新访问后对象字段仍然出错 (MagicalRecord)

Posted

技术标签:

【中文标题】保存和重新访问后对象字段仍然出错 (MagicalRecord)【英文标题】:Object fields still faulted after save and re-access (MagicalRecord) 【发布时间】:2014-11-05 10:58:40 【问题描述】:

我在我的应用程序中使用MagicalRecord。

我的 ViewController 中有一个名为 contactDetails 的属性。 这是一个 NSManagedObject 子类。

ViewController 允许我更改此对象(即更改其属性)。 完成后,我使用以下方式保存它:

    [[NSManagedObjectContext MR_defaultContext] MR_saveOnlySelfWithCompletion:^(BOOL success, NSError *error) 
    // saving complete
    ];

现在,如果我要对 contactDetails 进行更多更改,然后再保存一次,我的应用程序就会崩溃。 (SIGABRT)

原来contactDetails 现在出了问题。

为什么contactDetails保存后出现故障?

如何在第一次保存后对对象进行更改,并且以后仍能再次保存?

附言

在此之后我尝试访问 contactDetails 的各个属性,但它们都是 nil 或 NULL。即访问contactDetails 属性不会正确加载对象。

【问题讨论】:

您的问题中没有足够的上下文。 MagicalRecord 没有做任何故障或重置 defaultContext。你只使用默认上下文吗? 是的。一旦我以上述方式使用默认上下文保存,对象属性就会出错,无法再次访问。 【参考方案1】:

我的contactDetails 对象在视图控制器之间传递,这两个视图控制器都将此对象作为属性。第一个视图控制器意外释放了该属性,因此第二个视图控制器中的属性变为故障

【讨论】:

以上是关于保存和重新访问后对象字段仍然出错 (MagicalRecord)的主要内容,如果未能解决你的问题,请参考以下文章

更改的属性未与 Magical Record 一起保存

如何在 Livecode 中保存绘图?

Magical Record 不会保存到 SQLite 文件

php文件随机访问和对象到文件保存

Tomcat关闭后,重新启动,session中保存的对象为什么还存在解决方法

Magical Record,CoreData,删除一条记录并重新编号