Ios 插入前分配的属性未分发到父上下文进行保存
我复习了其他问题,比如。 但这并没有解决我的问题。 让我解释一下我的情况Ios 插入前分配的属性未分发到父上下文进行保存,ios,objective-c,core-data,Ios,Objective C,Core Data,我复习了其他问题,比如。 但这并没有解决我的问题。 让我解释一下我的情况 安装程序 我使用了嵌套的NSManagedObjectContext writerContext链接到NSPersistentStoreCoordinate mainContext链接到具有parentContext的writerContext 我创建的对象未被-(id)initWithEntity:(NSEntityDescription*)实体插入ManagedObjectContext:(NSManagedO
安装程序 我使用了嵌套的NSManagedObjectContext
- writerContext链接到NSPersistentStoreCoordinate
- mainContext链接到具有parentContext的writerContext
我创建的对象未被
-(id)initWithEntity:(NSEntityDescription*)实体插入ManagedObjectContext:(NSManagedObjectContext*)上下文插入
和[self initWithEntity:entity insertIntoManagedObjectContext:nil]代码>
在插入之前分配属性[mainContext insertObject:object]
,以及
插入后分配其他属性并保存到mainContext
结果
插入前分配的属性在mainContext([mainContext objectWithID:objectID]
)中填充,但在writerContext([writerContext objectWithID:objectID]
)中填充
我怀疑这个问题的原因是插入之前的assinged属性似乎没有标记为changed。因为如果我在插入后用其他值更新已分配的属性,则在保存并向上传播到writerContext后,它不是nil
这种情况下的问题是什么?我应该如何解决这个问题?解决方法是先将对象插入上下文,然后分配其属性。如果必须在之前插入它们,则可以在保存之前再次读取和分配它们。我延迟插入的原因是,我不希望在保存其他对象时间接保存此对象。在我的情况下,应该使用其他方法?您可以创建另一个子上下文,如果不想保存它,可以将其丢弃。您还可以通过在正确的位置重置来丢弃更改。从技术上讲,这真是微不足道。我想,你的问题更多的是关于一般的应用程序流逻辑。也许你应该回到设计委员会,制定一个稳健的计划。创建子上下文不适合我的解决方案,因为我应该在父上下文中设置与其他对象的关系。但是,你是对的。我应该重新设计储蓄计划!谢谢