如何索引NSFetchedResultsController
以便我可以在tableview上實現A-Z索引。已編入索引的NSFetchedResultsController
我在初始化程序中看到我可以做sectionNameKeyPath
但這只是將獨特的對象放置在它們自己的部分中。
這裏是我有我的NSFetchedResultsController
- (NSFetchedResultsController *)fetchedResultsController
{
if (__fetchedResultsController != nil) {
return __fetchedResultsController;
}
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Customer" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];
[fetchRequest setFetchBatchSize:20];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];
NSArray *sortDescriptors = [NSArray arrayWithObjects:sortDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:@"name" cacheName:@"Customer"];
aFetchedResultsController.delegate = self;
self.fetchedResultsController = aFetchedResultsController;
return __fetchedResultsController;
}
這個工作完美!吹我的腦海。現在,它只在我的數據庫中的對象索引中顯示字母。所以如果我在那裏只有「測試,測試,測試」,它只顯示T,我該如何顯示所有字母以及如何處理帶有「#」的數字?我是否可以放置與其他解決方案類似的字母數組? – tofortier
在我的firstLetter方法中以這種方式找出數字事物。 if([[[[NSNumberFormatter alloc] init] numberFromString:firstLetter]){ return @「#」; } – tofortier
吹我的腦海!真棒感謝 –