0

我查看了其他 SO 问题,例如在插入不粘之前分配 NSManagedObject 属性。但这并没有解决我的问题。让我解释一下我的情况。


设置

我使用了嵌套的 NSManagedObjectContext

  • writerContext 链接到 NSPersistentStoreCoordinate
  • mainContext 使用 parentContext 链接到 writerContext

我创建了尚未被- (id)initWithEntity:(NSEntityDescription *)entity insertIntoManagedObjectContext:(NSManagedObjectContext *)context and插入的对象[self initWithEntity:entity insertIntoManagedObjectContext:nil];

在 insert 之前分配属性,在插入[mainContext insertObject:object]之后分配其他属性并保存到 mainContext


结果

在 mainContext() 中填充插入前分配的属性[mainContext objectWithID:objectID],但在 writerContext( ) 中为nil[writerContext objectWithId:objectID]


我怀疑这个问题的原因是插入之前分配的属性似乎没有被标记为已更改。因为如果我在插入后更新已经分配了其他值的属性,那么在保存并传播到 writerContext 之后它就不是 nil 了。

在这种情况下有什么问题,我应该怎么做才能解决这个问题?

4

1 回答 1

0

解决方案是先简单地将对象插入上下文中,然后分配其属性。如果您必须先插入它们,您可以在保存之前再次读取并分配它们。

于 2013-11-02T09:19:09.730 回答