我有一个NSManagedObject子类,它将无法正确更新其属性。

SCItem.h(相关部分)

SCItem : NSManagedObject
@property (nonatomic, retain) NSString *name;


SCItem.m(相关部分)

@dynamic name;



我使用initWithEntity:insertIntoManagedObjectContext创建一个新项目
然后设置名称:@“ name1”
item.isUpdated为是
item.isInserted为是
[itemchangedValues]显示名称已更改
然后我保存上下文
该项目正确存留
我再次设置名称:@“ name2”
item.isUpdated为是
item.isInserted为否
[itemchangedValues]为EMPTY
记录的item.name是正确的(“ name2”)
保存上下文不会保留名称(这是预期的,因为MOC显然不知道该值确实发生了变化)


我检查了该项目没有被重新初始化(在内存中的相同位置)。我还确认,managedobjectcontext保持不变。

我是CoreData的新手。我想念什么吗?我从搜索中获得的唯一想法是确认子类仍然具有动态属性,并且确实具有。

最佳答案

答案:我是根据NSTextView的字符串值设置字符串的。一旦将其设置为该值的副本,它便可以正常工作。 NSManagedObject必须以为它被设置为旧值,因为字符串的内存地址是相同的(我认为)。

09-28 13:38
查看更多