1

に変更を加えたいのですがNSManagedObjectNSFetchedResultsControllerデリゲート メソッドを起動しません。ただし、これらの変更に基づいてフェッチすると、結果が表示されるように、変更をコンテキストに伝播させたいと考えています。この回答で行われた推奨事項を試しましたが、これに関する問題は、これらの変更に基づいてフェッチすると結果が得られないため、デリゲート メソッドが起動しない (目的の結果) だけでなく、コンテキストが正しくないことです。これらの変更を認識していません (望ましくない結果)。

私の目標は、特定のプロパティに変更が加えられたときにデリゲート メソッドのみが起動するのを厳密に防ぐことNSFetchedResultsControllerですが、KVO やコア データが舞台裏で行うことなど、他のすべての機能を残しておき、コンテキストが確実に認識されるようにすることです。変化します。

4

2 に答える 2

1

NSFetchedReresultsController は、関連するコンテキストで関連するエンティティからの通知をリッスンします。あなたがする必要があるのは、デリゲート メソッド内にいくつかのロジックを導入することです。ここでは、コンテキストが無視したいオブジェクトに何らかの変更を加えた場合に、UI への更新 (ある場合) を破棄します。完全な永続追跡モードで NSFetchedResultsController インスタンスを使用している場合、デリゲート メソッドが呼び出されます。これが NSFetchedResultsController の主な目的です。

于 2012-08-17T17:03:56.447 に答える
0

なぜそれが必要なのかはよくわかりませんが、UI の更新を続行するよう指示するある種のグローバル フラグを設定する方法の 1 つです。

コンテキストを保存する前にフラグを設定し、取得した結果コントローラーのデリゲート メソッドでそのフラグをチェックし、設定されている場合は設定を解除して UI を停止します。

于 2012-08-17T17:14:51.093 に答える