我有一个数组和一个从数组中获取数据的tableview。当我在iPhone上查看tableview时,它的ofc没有排序,而且它列在我写的那些中。
我想在tableview中对我的数组进行排序,因此它们不会像这样列出:
但是这样列出了:
我该怎么做?
这是我的数组:
stationList = [[NSMutableArray alloc] init];
[stationList addObject:@"A"];
[stationList addObject:@"B"];
[stationList addObject:@"C"];
如何将数组加载到tableview数组中? 加载数组:
NSString *cellValue = [stationList objectAtIndex:indexPath.row];
cell.textLabel.text = cellValue;
答案 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];
我希望这很好。如果我能做得更好,请告诉我