我有一个 NSManagedObject,其属性为 NSMutableArray:
@interface MyObject : NSManagedObject
{
}
@property (nonatomic, retain) id a1;
在数据模型中它被声明为Transformable
。我将值转换器字段保留为默认值(浅灰色)NSKeyedUnarchiveFromData
.
a1 作为对象的一部分创建:
MyObject *theObject = [NSEntityDescription insertNewObjectForEntityForName:@"MyObject" inManagedObjectContext: myManagedObjectContext];
并初始化:
a1 = [[NSMutableArray alloc] init];
对象被添加到 a1 中[a1 insertObject:[NSNumber numberWithInt:0] atIndex: 0 ];
然后我保存上下文。加载上下文 a1 中存储的所有元素都将被保存并加载。ALL WORKS WELL!
但是,当现在 a1 发生更改时,例如通过向 a1 添加一个元素或更改 a1 中的任何元素,并且上下文正在保存并加载回来,a1 的内容将保持不变(它与所有更改发生之前完全相同)。CHANGES DON'T WORK!
顺便说一下,当应用程序运行时,对 a1 的所有更改都存储在 a1 中。
拜托,你能帮忙吗 - 这是怎么回事?
非常感谢您的帮助!
数组内部的更改将不起作用,因为核心数据无法查看数组。
简短的答案是不要这样做。这并不是在 Core Data 中存储数组(或字典)的理由。
在核心数据中创建一个新实体并创建关系。如果订单很重要,请在子表中放置一个订单属性。
不要将数组存储为二进制对象。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)