2010-11-28 2 views
0

私のコアデータモデルには、「パート」という属性を持つエンティティが1つあります。このエンティティの異なるオブジェクトは、「パート」に同じ値を共有できます。つまり、すべてが同じ「パート」に属しています。 NSFetchedResultsControllerでは、これらの値に基づいてセクションを表示でき、すべてが一緒に属しています。これは問題なく動作しますが、今は別のもののために "part"の値が必要になります。 "part"の異なる値だけをフェッチしてtableViewに表示し、同じ値が2回表示されないようにしたいと思います。これどうやってするの?私はいくつかの助けをいただければ幸いです特別なコアデータの取得

、ファビアン

答えて

0

よしは、自分自身をそれを考え出しました。これは、名前府名とグループで、あなたにソートしてすべての人を与える

for (int i = 0; i < [[self.fetchedResultsController sections] count]; i++) { 
    id <NSFetchedResultsSectionInfo> sectionInfo = [[self.fetchedResultsController sections] objectAtIndex:i]; 
    [partNames addObject:[sectionInfo name]]; 
} 
0

- (NSFetchedResultsController *)fetchedResultsController { 

if (fetchedResultsController_ != nil) { 
    return fetchedResultsController_; 

} 

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Person" inManagedObjectContext:self.managedObjectContext]; 
[fetchRequest setEntity:entity]; 
[fetchRequest setFetchBatchSize:20]; 



NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:NO]; 
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil]; 
[fetchRequest setSortDescriptors:sortDescriptors]; 

NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:@"name" cacheName:nil]; 
aFetchedResultsController.delegate = self; 
self.fetchedResultsController = aFetchedResultsController; 

[aFetchedResultsController release]; 
[fetchRequest release]; 
[sortDescriptor release]; 
[sortDescriptors release]; 

NSError *error = nil; 
if (![fetchedResultsController_ performFetch:&error]) { 
    NSLog(@"Unerwarteter Fehler %@, %@", error, [error userInfo]); 
    abort(); 
} 

return fetchedResultsController_; 

}

:基本的に私のNSFetchedResultsControllerからの情報を持つ配列partNamesを充填重複する値を削除します。

----- Fetcgcontrollerを作成する際には、sectionNameKeyPathを言及する必要があり* * -----------