我在 CoreData 中创建了一个实体,其中包含作为 NSDictionary 实现的 Transformable 属性类型。 NSDictionary 属性仅包含自定义类的值。自定义类的属性都是NSString类型。自定义类符合 NSCoding 实现:
-(void)encodeWithCoder:(NSCoder*)编码器;
-(id)initWithCoder:(NSCoder *)编码器
第一次保存实体时,包括 Transformable (NSDictionary) 类型在内的所有属性都会正确保存在数据库中。当从数据库获取并更新相同的实体(包括 Transformable 属性)时,它似乎已正确更新。但是,当应用程序关闭然后重新打开时,获取实体不会显示更新的 Transformable 属性类型,尽管 NSDate 和 NSString 类型的其余属性是最新的。 Transformable 属性是原始保存的值而不是更新后的值。
这是 KVO 的问题还是我在尝试将填充有自定义类的 NSDictionary 保存到 CoreData 时遗漏了其他内容?
您是否将值设置回NSManagedObject
? The NSManagedObject
不会监视可变形对象的变化。您需要在保存之前调用适当的设置器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)