如何索引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
吹我的脑海!真棒感谢 –