NSFetchedResultsControllerを使用せずに、(参照されたプロパティを介して)セクションを使用することを含め、コアデータモデルからのデータをUITableViewに効率的に提供する方法の例を誰かが持っていますか?
NSFetchedResultsControllerが利用可能になる前に、これはどのように行われましたか?理想的には、サンプルは表示されているデータのみを取得し、必要に応じて追加のリクエストを行う必要があります。
ありがとう、
ティム
NSFetchedResultsControllerを使用せずに、(参照されたプロパティを介して)セクションを使用することを含め、コアデータモデルからのデータをUITableViewに効率的に提供する方法の例を誰かが持っていますか?
NSFetchedResultsControllerが利用可能になる前に、これはどのように行われましたか?理想的には、サンプルは表示されているデータのみを取得し、必要に応じて追加のリクエストを行う必要があります。
ありがとう、
ティム
記録として、私はCommaToastに同意します。これは、の代替バージョンを実装する理由がせいぜい非常に限られているということですNSFetchedResultsController
。確かに、私がそうすることを提唱する機会を考えることはできません。
そうは言っても、教育の目的で、私は次のことを想像します。
NSFetchedResultsController
関連を実行して、初期結果セットを作成します。NSFetchRequest
NSManagedObjectContextObjectsDidChangeNotification
続いて(デリゲートがある場合)、管理対象オブジェクトのコンテキストからリッスンします。その通知を受信すると、結果セットを更新します。フェッチ要求は述語の上にあり、述語は常にそれらが参照するキーに分解できるとは限りません(たとえば、を介して作成した場合predicateWithBlock:
)。さらに、挿入および削除されたリストは非常に明示的ですが、変更されたオブジェクトのリストは、それらのオブジェクトがどのように変更されたかについての手がかりを提供しません。したがって、フェッチ要求で指定された述語を、変更されたレコードと挿入されたレコードの組み合わせセットに対して再実行し、結果を適切に累積して、以前に結果と見なした削除されたセットからすべてを削除すると思います。
フェッチ制限のあるフェッチ要求を処理するときはいつでも、おそらくもっと効率的なことができます。明らかな観察、私の頭のてっぺんからまっすぐに:
論理的な拡張は、削除、挿入、および変更によってソート済みリストが変更され、指定されたフェッチ制限に切り詰める前に、管理対象オブジェクトのコンテキストを再問い合わせする必要があるように思われます。一番下のオブジェクトは、前回持っていたものではありません。理由は、挿入や変更に対して、保持していない保存されたオブジェクトについてはまだ何も知らないということです。あなたはあなたが以前持っていたものと比較してあなたが持っていないものがどのようにあるかについて知っているだけです。