6

私の製品が入っているProductCategoriesを検索する製品検索があります。私の製品は複数のカテゴリに分かれていて、結果が重複していることがあります。私は、複数のサイズを持つが基本的に同じ製品であるいくつかの製品があるので、製品テーブルを直接検索したくない。NSFetchedResultsControllerを使用すると、別の結果を得ることは可能ですか?

NSFetchedResultsControllerで個別の検索結果を取得する方法はありますか?それは複雑だ

を(Predicate Programming Guideを参照)

答えて

11

はいあなたは...

は(この例では、我々は我々の管理対象オブジェクトの唯一の明確な「タイトル」属性を取得する)方法

- (NSFetchedResultsController *)fetchedResultsController; 

の外を見ると、そこに以下の行を追加することができます:

[fetchRequest setReturnsDistinctResults:YES]; 
[fetchRequest setResultType:NSDictionaryResultType]; 
[fetchRequest setPropertiesToFetch:[NSArray arrayWithObject:@"title"]]; 
self.fetchedResultsController.delegate = nil; 

あなたはNSFetchedResultsControllerからの値にアクセスする方法を

にたとえば...世話をする必要があり
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath; 

がデータにアクセスするには、次のコードを使用します。Shingooが提供するソリューションに加えて

NSDictionary* title = [self.fetchedResultsController objectAtIndexPath:indexPath]; 
cell.textLabel.text = [title objectForKey:@"title"]; 
0

あなたがNSPredicateを使用する必要があるだろうが、あなたはあなたのNSFetchRequestあなたが-setReturnsDistinctResults:を使用してYESに設定することができます作成​​するときSUBQUERY

+0

ferdil - あなたの答えを詳述できますか? – NSPratik

-1

を使用してそれを行うことができます。

+0

を使用するには、setResultTypeも設定する必要があります。NSFetchedResultsControllerが好きではないNSDictionaryResultType – Slee

+0

@Slee:より正確には、FRCはNSDictionaryResultTypeをサポートしていません。 –

8

を、順番にゼロにセットNSFetchedResultsControllerのデリゲートに忘れないでくださいNSDictionaryResultTypeと別の値で動作しない自動更新を無効にする:

self.fetchedResultsController.delegate = nil; 
関連する問題