在tableview中排序数组

时间:2011-03-27 02:02:34

标签: iphone arrays ios uitableview sorting

我有一个数组和一个从数组中获取数据的tableview。当我在iPhone上查看tableview时,它的ofc没有排序,而且它列在我写的那些中。

我想在tableview中对我的数组进行排序,因此它们不会像这样列出:

  • d
  • A
  • ˚F
  • 取值

但是这样列出了:

  • A
  • C
  • d
  • 电子
  • 等等...

我该怎么做?

这是我的数组:

stationList = [[NSMutableArray alloc] init];
[stationList addObject:@"A"];
[stationList addObject:@"B"];
[stationList addObject:@"C"];

如何将数组加载到tableview数组中? 加载数组:

NSString *cellValue = [stationList objectAtIndex:indexPath.row];
cell.textLabel.text = cellValue;

3 个答案:

答案 0 :(得分:4)

使用[stationList sortUsingFunction:compareLetters context:whateveryouwant_ornil]

NSComparisonResult compareLetters(id t1, id t2, void* context) {

      do the tests you want beetween t1 and t2, and return the result
      like :

      if (the test) return NSOrderedDescending, NSOrderedAscending or NSOrderedSame
}

在您的示例中,您应该:

NSMutableArray stationList = [[NSMutableArray array];
[stationList addObject:@"A"];
[stationList addObject:@"B"];
[stationList addObject:@"C"];
[stationList sortUsingFunction:compareLetters context:nil];

NSComparisonResult compareLetters(id t1, id t2, void* context) {
      return [t1 compare:t2];
}

答案 1 :(得分:2)

转到下面的教程进行排序NSArray,他们已经解释了对NSArray进行排序的基本技巧。

您还可以下载教程结尾提供的示例代码。 Here is the link.

答案 2 :(得分:0)

您可以使用一些简单的步骤。我正在使用哪个。我不确定它在内存消耗方面是否完美。但它在我的申请中与我合作。

这里的记录是NSMutableArray。 列名在您想要排序的Coulmn上。在我的情况下,我有多个列要排序。排序需要BOOL数据。

在测试后我正在重新加载我的TableView。



    NSSortDescriptor * frequencyDescriptor = [[NSSortDescriptor alloc] initWithKey:columnName ascending:YES];

    NSArray * descriptors = [NSArray arrayWithObjects:frequencyDescriptor, nil];
    [record sortUsingDescriptors:descriptors];
    [columnName release];
    [frequencyDescriptor release];
    [myTableView reloadData];   



我希望这很好。如果我能做得更好,请告诉我