如何在通过 Core Data 保存我的 RestKit 托管对象之前对其进行修改?
Posted
技术标签:
【中文标题】如何在通过 Core Data 保存我的 RestKit 托管对象之前对其进行修改?【英文标题】:How can I modify my my RestKit managed object before it is saved via Core Data? 【发布时间】:2012-04-26 17:06:04 【问题描述】:我已经很好地设置了带有 Core Data 托管对象支持的 RestKit,但我有一些字段不存在于服务器上,仅存在于本地模型类中。
如何在对象被持久化之前设置这些字段。我可以实现类似“willSave”的委托方法吗?
谢谢
【问题讨论】:
在您保存之前,该对象不会被持久化(也就是通过托管对象上下文插入到持久化存储中)。为什么不能在保存之前设置属性? 当我调用 loadObjectsAtResourcePath 时,持久化由 RKManagedObjectStore 支持的 RKObjectManager 自动处理。我一直在寻找一种在保存发生之前拦截它的方法 【参考方案1】:我不太明白你想要完成什么,但你可以覆盖 NSManagedObject 中的willSave
。文档很好地解释了它的作用。
【讨论】:
我认为这是实现这一目标的最简单方法。谢谢 此解决方案如何与缓存对象交互?您是否只能在第一次收到新对象时修改值,而不是在找到缓存值时修改值? @deepwinter 我不太了解 RestKit,但你可以看看-awakeFromFetch
(和 -awakeFromInsert
,就此而言)。它们使您有机会在其他时间更新对象。如果这不能解决您的问题,请继续并发布一个新问题。【参考方案2】:
如果你想在保存之前修改传入的数据,你应该考虑willMapData
【讨论】:
以上是关于如何在通过 Core Data 保存我的 RestKit 托管对象之前对其进行修改?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Swift 中将字符串数组保存到 Core Data