0

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 まで伝播されるためです。

この状況の問題は何ですか? この問題を解決するにはどうすればよいですか?

4

1 に答える 1

0

解決策は、まずオブジェクトをコンテキストに挿入してから、そのプロパティを割り当てることです。以前にそれらを挿入する必要がある場合は、保存する前にそれらを読み込んで再度割り当てることができます。

于 2013-11-02T09:19:09.730 に答える