我在 CoreData 中创建了一个实体,其中包括一个实现为 NSDictionary 的 Transformable 属性类型。NSDictionary 属性仅包含自定义类的值。自定义类的属性都是 NSString 类型。自定义类符合 NSCoding 实现:
-(void)encodeWithCoder:(NSCoder*)编码器;
-(id)initWithCoder:(NSCoder *)coder
第一次保存实体时,包括 Transformable (NSDictionary) 类型在内的所有属性都正确保存在数据库中。当从数据库中获取同一个实体并更新(包括 Transformable 属性)时,它似乎已正确更新。但是,当应用程序关闭然后重新打开时,虽然 NSDate 和 NSString 类型的其余属性是最新的,但获取实体并不会显示更新的 Transformable 属性类型。Transformable 属性是原始保存的值,而不是更新后的值。
这是 KVO 的问题,还是我在尝试将填充了自定义类的 NSDictionary 保存到 CoreData 时遗漏了其他内容?