如何将NSArray拆分为按字母顺序排列的部分,以便与索引tableview一起使用

C.J*_*hns 4 iphone uitableview ios

我有一个NSArray,我已经从我从数据库中获取的一些xml按字母顺序解析和排序.我现在想知道如何将此数组拆分为与tableview上的索引一起使用以便更快地搜索.

我的表格略有不同的地方在于它总是使用整个字母表,而且与大多数示例不同,我发现我使用的数据集每天都有很多变化.

所以我试图找出如何将排序的数组拆分为不总是相同的字母部分.

正如cocofu指出的那样,是的,我已经实现了sectionIndexTitlesForTableView,我现在正在尝试将我的nsarray拆分为多个部分,以便滚动与sectionIndexTitlesForTableView一起使用.

Eri*_*icS 6

我将使用您在数组中使用的第一个字母创建一个NSSet,然后从中创建一个排序数组.假设所有首字母都是正确的情况,它看起来像:

- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView 
{
   NSMutableSet *mySet = [[[NSMutableSet alloc] init] autorelease];
   for ( NSString *s in myArray )
   {
     if ( s.length > 0 )
       [mySet addObject:[s substringToIndex:1]];
   }

   NSArray *indexArray = [[mySet allObjects] sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
   return indexArray;
}
Run Code Online (Sandbox Code Playgroud)