子オブジェクトのURIを格納するNSManagedObjectサブクラスがあります。子オブジェクトが最初に作成されたときに最初に一時URIを格納し、保存する前にNSManagedObjectContext-willSave
を呼び出すように実装する-obtainPermanentIDsForObjects
ため、永続IDのみが保持されます。
しかし、私が遭遇している問題は、他のインスタンスも一時的なURIを格納していることです。-willSave
同じ子を持つ別のオブジェクトが受け取った直後にメッセージを受け取ると、別の間違った永続的なURIも呼び出して取得-obtainPermanentIDsForObjects
し、次のような後続のCoreData障害エラーが発生します。
CoreData could not fulfill a fault for '0x102e4c110 <x-coredata://E17EE19B-E7F3-4102-ACFF-3E6F8BE8B104/MyEntityName/p2>'
NSManagedObjectの古い一時的なURIRepresentationから、すでに生成されている新しい永続的なURIRepresentationに移行する方法が必要です。
私の最初の考えは、使用する前に自分の辞書を保存<temporary URI,permanent URI>
し、それを調べることです-obtainPermanentIDsForObjects
-私が見逃しているより簡単な(より確実な、または組み込みの)方法はありますか?私がドキュメントで見つけたものは何も示唆していませんでした。