私はこれら2つの呼び出しの間の文書化された違いを理解します。しかし、私が気づいた以下の観察された振る舞いの理由を知っている人は誰ですか:説明できないobjectWithIDとの違い:existingObjectWithID:
[childContext objectWithID:objectID]を使用する場合は、childContextを使用して編集、挿入、削除した一時的なchildContextがあります。親コンテキストに存在する既知の既存の管理対象オブジェクトを取得するために、起動時に失敗して例外が生成されるという障害のあるオブジェクトが表示されることがあります。私はobjectWithIDを理解しています:指定されたobjectIDに対して実際のmanagedObjectが存在するかどうかにかかわらず、設計上、常に障害状態のオブジェクトを返します。しかし、オブジェクトが親コンテキストに実際に存在する場合、プロパティのいずれかにアクセスすると、オブジェクトは問題なく親コンテキスト(たとえば、障害が解消される)から常に正常に取得されることが期待されます。 [childContext existingObjectWithID:objectID]を使用すると私はそれが本当に常に成功することを見つける。
私は子コンテキストでキャッシュをオフにしていますが、[childContext resetContext]が呼び出された後も同様の動作が発生します。親コンテキストと矛盾する古いキャッシュデータのアーチファクトではありません。
ドキュメントだけでは、この動作を説明するには不十分なようです。私はもちろん、それを経験するためにチョークすることができますし、 "私は今常に使用することを知っていますexistingObjectWithID:オブジェクトIDを渡すときに私の子供の編集コンテキストブロックを実行"しかし、私は不安を感じて、ここで何が起こっているのか正確に理解したい少なくとも私は、他のものと同じように1つを使用することによるパフォーマンス上の影響があるかどうかを理解することができますが、制約が何であるかを理解するために、私はコード内に不必要に実装しているそれを修正するために間違っているか非効率的な呼び出し)。
ありがとうございました。私は今それを無視しているだけで、誰かがそれを(正常に)無視していることを知ることは有益です。私は今コーディングで非常に快適な場所にいて、このような "不明"または "未解決"の問題を抱えていると、私が始めていていつも心配しているような気がしますまたは私を噛むつもりですが、さらに道のりを下ります! – TheBasicMind
説明と解決に感謝します。私はUIManagedDocumentを使用してこの問題にも対処しました。 existingObjectWithID:error:に切り替えた後の私の最初のテストは有望でした。 –