【发布时间】:2011-11-25 18:03:10
【问题描述】:
我正在使用排序描述符设置 NSFetchedResultsController
sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@”name” ascending:YES selector:@selector(caseInsensitiveCompare:)];
还有部分
aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:@”name” cacheName:nil];
然后我还像这样设置表格视图部分的委托:
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView {
return [self.fetchedController sectionIndexTitles];
}
- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index {
return [self.fetchedController sectionForSectionIndexTitle:title atIndex:index];
}
有时,当我插入对象时,我会收到错误消息“索引 X 处获取的对象的节名称乱序'something. Objects must be sorted by section name'”;
我正在插入数千行。当错误发生时,总是相同的大小写:我有 10 个对象被称为相同的东西,但有些是大写的,有些是小写的。示例:nameexample、nameExample、nameEXAMPLE、nameexample、nameExample 等
知道为什么会出现此错误以及如何解决此问题吗? 我设置不区分大小写的原因是因为我的部分是基于第一个字母的,如果我不区分大小写,我会得到部分“a”和“A”部分。
【问题讨论】:
标签: core-data nsfetchedresultscontroller nssortdescriptor