2

それぞれ 1 つの NSPersistentStore を持つ複数の NSPersistentStoreCoordinator インスタンスがあり、すべて同じ sqlite ファイルを指しています。そして、私のテストでは、それらの間で NSManagedObjectID オブジェクトを渡し、次に呼び出します

- (NSManagedObject *)existingObjectWithID:(NSManagedObjectID *)objectID error:(NSError **)error

on NSManagedObjectContext は正常に動作しているようですが、これが正常に動作することを確認する Apple からのドキュメントをまだ見つけていません。

したがって、私の質問は、これが機能するはずかどうかを誰かが知っている場合 (それが素晴らしいことを確認するいくつかのアップルのドキュメントへのリンク!)、これが通常は機能しないはずであり、私がすべきではないことを誰かが知っているかどうかです。これ、それもすごいでしょう!

4

1 に答える 1

1

そのメソッドを呼び出すことは常に安全です。オブジェクトを返すかどうかは別の話です。

別のコンテキストからのオブジェクト ID を使用する場合、このメソッドを呼び出したコンテキストでオブジェクトが既にアクセス可能である場合にのみ、非 nil の結果が得られます。これは、オブジェクトが永続ストアに既に存在することを意味します。つまり、元の管理対象オブジェクト コンテキストに既に保存されていることを意味します。

言い換えると、ID を使用してオブジェクトを既に保存しており、オブジェクトの永続的な (保存後の) ID を使用している場合にのみ、nil 以外の結果が得られます。

于 2014-02-06T04:27:57.993 に答える