2 つのエンティティを含むマネージド オブジェクト モデルがあります。
エンティティの 1 つ ( EAと呼びましょう) は、2 番目のエンティティ ( EBと呼びます) のサブセット内のいくつかのプロパティを参照して、そのプロパティを計算します。
EA内で、必要なEBオブジェクトのサブセットを返す述語を使用して「フェッチされたプロパティ」を設定しました。
EBオブジェクトを削除、挿入、または EB オブジェクトを変更するときは、通知を使用してEAが最新の状態に保たれるようにします。たとえば、「保存」した後、EAオブジェクトはそのプロパティを再計算します。
私の問題は、フェッチされたプロパティにアクセスすると ( EBモデル クラス内でを使用して行う)、キャッシュされたバージョンのみを抽出するように見えることです。つまり、初回は問題ありませんが、別のEAオブジェクトを追加すると、取得したプロパティにアクセスしたときに、返された配列にそれが表示されません。オブジェクトを削除すると、このオブジェクトが存在しなくなったためにクラッシュするため、これは最も明白です。[self valueForKey:FetchedPropertyKeyName]
フェッチされたプロパティのドキュメントには、次のように記載されています。
宛先エンティティのオブジェクトが変更された場合は、フェッチされたプロパティを再評価して最新であることを確認する必要があります。プロパティを手動で更新するには、refreshObject:mergeChanges: を使用します。これにより、次にオブジェクトの障害が発生したときに、このプロパティに関連付けられたフェッチ リクエストが再度実行されます。
ばかげた質問に聞こえる場合は申し訳ありませんが、残念ながらどこに電話すればよいかわかりませんrefreshObject:mergeChanges:
??