1

これはおそらく簡単な質問ですが、かなりの量の検索を行った後でも、正解について少し混乱しています。

Core Data を使用するアプリと、NSFetchedResultsController によって設定された UITableView があります。テーブルビューの上部に検索バーを追加し、検索バーと検索表示コントローラーを使用して、テーブルビューにあるデータをフィルタリングしたい

私が知りたいのは、これを行う正しい方法は何ですか?

私が見たほとんどの例では、検索語が変わるたびに NSFetchRequest 述語を変更していますか? これは、すべてのリクエストで多くのオーバーヘッドを追加するようです

リンゴの例は、配列に基づいたテーブルビューの結果の検索のみを扱っているようです。

fetchedObjects に基づいて配列を作成し、その配列を検索して、フィルター処理された結果を別の配列に配置する必要があります。

よろしくお願いします。

4

1 に答える 1

0

最適化が早すぎないようにしてください。

フェッチ要求の述語を変更します。NSFetchResultsController は、CoreData へのアクセスを最小限に抑えるのに非常に優れています。

機能したら、インストゥルメントを使用してパフォーマンスの問題を切り分けます。

オブジェクトの配列を自分で検索する場合は、すべてのオブジェクトをメモリにフォールトしてから、それらすべてを検索する必要があります。はい、それでもすべてを検索する必要がありますが、ほとんどの場合、はるかに高速であるため、CoreData に任せてください。

編集

iOS アプリ開発に関するスタンフォード大学の iTunes U コースは、無料のビデオ指導に適しています。Ray Wenderleich には、NSFetchedResultsController に関する優れたチュートリアルがあります: http://www.raywenderlich.com/999/core-data-tutorial-how-to-use-nsfetchedresultscontroller

于 2012-04-23T10:44:18.070 に答える