CoreData中NSDictionary属性的更新未保存

sfk*_*aos 3 core-data nsdictionary key-value-observing

我在CoreData中创建了一个实体,其中包含一个实现为NSDictionary的Transformable属性类型.NSDictionary属性仅包含自定义类的值.自定义类的属性都是NSString类型.自定义类符合NSCoding实现:

- (无效)encodeWithCoder:(NSCoder*)编码器;

- (id)initWithCoder:(NSCoder*)编码器

第一次保存实体时,包括Transformable(NSDictionary)类型在内的所有属性都正确保存在数据库中.当从DB获取并更新相同的实体(包括Transformable属性)时,它似乎正确更新.但是,当应用程序关闭然后重新打开时,获取Entity并不显示更新的Transformable属性类型,尽管NSDate和NSString类型的其余属性是最新的.Transformable属性是原始保存的值,而不是更新的值.

这是KVO的一个问题,还是我在尝试将填充了自定义类的NSDictionary保存到CoreData时遗漏了其他内容?

Mar*_*rra 6

你把价值重新设定为NSManagedObject?该NSManagedObject不会监视更改到变形的对象.您需要在保存之前调用相应的setter.