将更改 NSManagedObject 保存到核心数据失败
Posted
技术标签:
【中文标题】将更改 NSManagedObject 保存到核心数据失败【英文标题】:Save changed NSManagmentObject to core data Fails 【发布时间】:2012-03-21 09:50:52 【问题描述】:你能帮我解决我的问题吗?我有服务将所有请求结果缓存到核心数据。我使用 RestKit 来做到这一点。除保存外,一切正常。然后我尝试更改对象中的某些属性,然后将其保存为 NSManagedObjectContext 保存方法,但如果我在保存更改后查看此对象,我会看到:
<User: 0xcedf910> (entity: User; id: 0xcede9f0 <x-coredata://904DBCDF-F1CF-4F2B-B173-2994FE47DEC8/User/p1800> ; data: <fault>)
然后尝试从上面的对象获取数据我出错了:
*** Terminating app due to uncaught exception 'NSObjectInaccessibleException', reason: 'CoreData could not fulfill a fault for '0xcedbce0 <x-coredata://904DBCDF-F1CF-4F2B-B173-2994FE47DEC8/User/p1722>
获取对象的代码:
[objectManager.objectStore objectsForResourcePath:path]
有什么帮助吗?谢谢你。
【问题讨论】:
这似乎是 NSManagedObjectContext 保存在 RestKit 中的错误 【参考方案1】:NSObjectInaccessibleException,就是这个意思。
您可能创建了一个 NSManagedObject 并将其放在上下文中,可能在某处保存了对它的引用。然后它从上下文中删除并且没有保存,您尝试再次访问它。
【讨论】:
我做了一个 fetch requet [objectManager.objectStore objectsForResourcePath:path] 然后更改从请求返回的某个对象中的一个属性。然后保存[[RKObjectManager sharedManager].objectStore save];。之后以上是关于将更改 NSManagedObject 保存到核心数据失败的主要内容,如果未能解决你的问题,请参考以下文章
神奇的记录 NSFetchedResultsController NSManagedObject 更改保存不工作