NSManagedObject changedValues 忽略字符串值
Posted
技术标签:
【中文标题】NSManagedObject changedValues 忽略字符串值【英文标题】:NSManagedObject changedValues ignoring string value 【发布时间】:2014-03-14 14:07:38 【问题描述】:我有一个 NSManagedObject 的子类,其中有一个“货币”属性。该属性是一个 3 个字母的字符串。当我将它从“USD”更改为“CAD”,然后在对象上调用changedValues
时,changedValues 返回一个空字典。这是正常的行为吗?
我先保存managedObjectContext,然后修改属性,再调用changedValues。
该属性是:非瞬态、可选、未索引、无默认值。
编辑:感谢帮助我在我的代码中发现错误的人。现在它工作得很好。
【问题讨论】:
你能显示一些关于值变化的代码吗? 【参考方案1】:我在我的代码中发现了一个错误。现在它工作得很好。 ;)
我使用委托方法从另一个 viewController 更新对象。从那个 viewController 回来后,我将 managedObjectContext 保存在 viewWillAppear
中,这基本上删除了 changedValues。
【讨论】:
答案没有用。请分享一些上下文。 不要忘记尽可能将其标记为已解决。【参考方案2】:在保存上下文之前执行此操作。
NSManagedObject Class Reference
改变的值
返回一个包含键和(新)值的字典 自上次获取以来已更改的持久属性或 保存接收者。
【讨论】:
OP 正在在保存上下文之前这样做 是的,刚刚注意到这一点。忽略这个答案。以上是关于NSManagedObject changedValues 忽略字符串值的主要内容,如果未能解决你的问题,请参考以下文章
NSManagedObject 故障/无法获得由 NSManagedObject 处理的“原始”对象
如何根据现有的 NSManagedObject 值在 NSManagedObject 派生类中设置默认值?
属性作为“当前 NSManagedObject”的视图控制器中的 NSManagedObject
创建新的 NSManagedObject 并将其分配给新的 NSManagedObject *有时*会失败
将 NSManagedObject 与另一个 NSManagedContext(多线程)中的“相同”NSManagedObject 合并