保存和重新访问后对象字段仍然出错 (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 不会保存到 SQLite 文件