質問: [[user objectID] isTemporaryID]; ``` 問題は、葉MOCからルートに保存されたばかりのMOC階層の "user"オブジェクト部分に対して、残念なことに "isTempID"フラグが "YES"を示していることです。 私は、他のコンテキストで使用できる永続的なObject IDを得るために、同期を同期的に実行できると私は期待していました。 `performBlockAndWait:`の私の概念的な期待は間違っていますか? もしそうなら、このMOCキュー構成と同期して保存して、一時的でないObjectIDをすぐに取得するにはどうすればよいですか?
回答: 誰にとって助けになるかもしれないが、私の回避策は、それを一意に取得する管理オブジェクトのためのフェッチを構築することでした。 このフェッチをルート管理されたオブジェクトコンテキストに対して実行してから、以前に保存した管理オブジェクトの非一時オブジェクトIDを確実に取得します。私の場合は、すでに検索で使用できるキーのセットを一意に識別するためのオブジェクトを管理しています。 もう1つのオプションは、子コンテキストの初期保存の前に、コンテキスト内のすべてのオブジェクトの永続オブジェクトIDを取得することです。 NSManagedObjectContextの `refreshObject:mergeChanges:`を使用して、スコープ内の特定のオブジェクトの現在の参照を更新することができます。これで、子コンテキストで保存されたばかりの変更が反映されます。 Obtain permanent object IDs using NSManagedObjectContext's method `obtainPermanentIDsForObjects:error:`