0

コア データ フェッチ リクエストからの固有の結果のみを表示したいと考えています。現在、研究から、これを使用することでこれを達成することが可能であることNSDictionaryResultTypeがわかりましたが、それを機能させるのに苦労しました。

以下を使用してみましたが、クラスに正しく統合できませんでした。NSArray *distincResults未使用の変数が出てきたので、何を後に置くべきか100%確信が持てませんでした:

     NSFetchRequest *request = [[NSFetchRequest alloc] init];
 NSEntityDescription *entity = [NSEntityDescription entityForName:@"Routines" inManagedObjectContext:managedObjectContext];
 request.entity = entity;
 request.propertiesToFetch = [NSArray arrayWithObject:[[entity propertiesByName] objectForKey:@"routinename"]];
 request.returnsDistinctResults = YES;
 request.resultType = NSDictionaryResultType;

 NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"routinename" ascending:YES];
 [request setSortDescriptors:[NSArray arrayWithObject:sortDescriptor]];

 NSError *error = nil;
 NSArray *distincResults = [managedObjectContext executeFetchRequest:request error:&error];
 // Use the results

助言がありますか?

4

1 に答える 1

0

を使用する場合NSDictionaryResultType、FRC デリゲートを使用して変更を監視することはできません。それがOKなら、このルートを下ることができます。

辞書の配列 ( distinctResults) を取得したら、それをテーブル ビューのデータ配列にします。したがって、たとえば incellForRowAtIndexPathまたはconfigureCellでは、

cell.textLabel.text = distinctResults[indexPath.row][@"routinename"];

これはの短い形式です

cell.textLabel.text = [[distinctResults objectAtIndex:indexPath.row] 
                          objectForKey:@"routinename"];
于 2013-07-16T15:01:33.663 に答える