2011-01-04 12 views
2

NSFetchedResultsControllerを使用して順次フィルタを作成します。目標はより関連性の高い結果を最初に表示することです。例えばNSFetchedResultsControllerを使用して順次フィルタを作成する方法

: エンティティ者:名 - 国

1)名前は、検索文字列で含まれ者。
2)国には検索文字列が含まれています。

順番には、最初に検索結果1)と2)が必要です。

1つのNSFetchRequestを使ってinit NSFetchedResultsControllerを実行するため、正しい方法がわかりません。しかし、ここでは2つのNSFetchRequestが必要です。 2つのリクエストを使用するもう1つの問題は、2番目のリクエストで重複したアイテムを生成できることです。

NSFetchedResultsControllerを使用してそれに対処することは可能ですか?ここで

おかげ

は一例です:

  • レコード1: 名:ピーター 国:モーリシャス

  • レコード2: 名:マルク・ 国:モーリタニア

  • レコード3: 名:モーリーン 国:ベルギー

もしユーザーが検索バーで「MA」:

私は最初、名前の結果と国の結果を表示したい

。だからここ

、結果がこの順で次のようになります。

  1. マルク( "MA" RC)
  2. モーリーン( "MA" ureen)
  3. ピーター( "MA" uritius)

答えて

1

ここでは、フィルタリングと並べ替えという2つの異なることが行われています。

NSFetchRequestでsetSortDescriptorsを呼び出して並べ替えを行うことができます。これはソート記述子の配列を取り、それぞれが名前や国などに対応します。

フィルタリングは述語で行われます。 NSFetchRequestでsetPredicate:を使用してください。 1つの述部しか取得できませんが、andとorを使用して複数の基準を持つことができます。

+0

ありがとうございました。しかし、それは本当に私の質問ではありません。私がしたいのは、順次リクエストです。より関連性の高い例を使って私の質問を編集しました。 – Benoit

関連する問題