我查看了其他SO问题,例如Assigning NSManagedObject properties before insertion doesn't stick。 但这并没有解决我的问题。 让我解释一下我的情况。
我使用了嵌套的NSManagedObjectContext
我创建了- (id)initWithEntity:(NSEntityDescription *)entity insertIntoManagedObjectContext:(NSManagedObjectContext *)context
尚未插入的对象
和[self initWithEntity:entity insertIntoManagedObjectContext:nil];
。
在插入[mainContext insertObject:object]
之前分配属性,和
插入后分配其他属性并保存到mainContext
插入前的赋值属性在mainContext([mainContext objectWithID:objectID]
)中填充,但在writerContext([writerContext objectWithId:objectID]
)中填充 nil 。
我怀疑这个问题的原因是插入之前的assinged属性似乎没有被标记为已更改。因为如果我在插入后更新已经分配了其他值的属性,那么在保存并传播到writerContext之后它不是nil。
在这种情况下有什么问题,我应该怎么做才能解决这个问题?
答案 0 :(得分:0)
解决方案是首先将对象首先插入上下文,然后分配其属性。如果您之前必须插入它们,您可以在保存之前阅读并再次分配它们。