我正在使用具有类型为“transformable”的属性来存储大块数据的Core Data NSManagedObject(在iOS应用程序中)。数据使用内置的NSKeyedUnarchiveFromData值转换器进行编码/解码。问题是我无法在二进制数据更改后让NSManagedObject正确更新。说,例如,代码如下:不更新可变形属性的核心数据
id temp = [myManagedObject myTransformableAttribute];
//.. do something with temp
[myManagedObject setMyTransformableAttribute:temp];
NSError *error;
if(![[myManagedObject managedObjectContext] save:&error]) {
//present error
}
这在我看来,“重新设置”可变形的属性到被管理的对象,然后保存管理对象,应引起数据进行重新通过NSKeyedUnarchiveFromData值转换器进行编码。但编码器永远不会被调用,并且更新的数据不会被保存。
如果不是将原始数据重新设置回管理对象,而是创建修改数据的副本并将那置于管理对象上,则会识别这些更改。核心数据是否有可能使用缓存版本的数据?还是有什么我在这里做错了吗?谢谢...