Assigning NSManagedObject properties before inserts not stickのような他の SO の質問を確認しました。しかし、それは私の質問を解決しませんでした。私の状況を説明させてください。
設定
ネストされた NSManagedObjectContext を使用しました
- NSPersistentStoreCoordinate にリンクされた writerContext
- parentContext を使用して writerContext にリンクされた mainContext
- (id)initWithEntity:(NSEntityDescription *)entity insertIntoManagedObjectContext:(NSManagedObjectContext *)context
andによって挿入されていないオブジェクトを作成します[self initWithEntity:entity insertIntoManagedObjectContext:nil];
。
挿入前にプロパティ[mainContext insertObject:object]
を割り当て、挿入後に他のプロパティを割り当てて mainContext に保存します
結果
挿入前に割り当てられたプロパティは、mainContext( ) では埋められますが、writerContext( )[mainContext objectWithID:objectID]
ではnil[writerContext objectWithId:objectID]
です。
私が推測するこの問題の理由は、挿入前に割り当てられたプロパティが変更済みとしてマークされていないように見えることです。挿入後に既に割り当てられているプロパティを他の値で更新すると、保存後に nil ではなく、writerContext まで伝播されるためです。
この状況の問題は何ですか? この問題を解決するにはどうすればよいですか?