ios排序主要是依靠NSDictionary这个数据类型,把数据加入到NSDictionary的object中,给定相同的key。就可以根据NSSortDescriptor 排序类进行排序了。
例子代码如下:
- (void)Sort {
sortArray = [[[NSMutableArray alloc] init ] autorelease];
hhmangerAppDelegate *App = [UIApplication sharedApplication].delegate;
for (OrderData * od in App.odLoader.OrderArray) {
NSMutableDictionary * dic=[[NSMutableDictionary alloc] initWithCapacity:1];
switch (nSortType) {
case 0:
[dic setObject:od.strSalerName forKey:@"sortKey"];
break;
case 1:
//[dic setObject:od.str forKey:@"sortKey"];
//break;
case 2:
[dic setObject:od.strCustomerName forKey:@"sortKey"];
break;
case 3:
[dic setObject:od.strTotalPrice forKey:@"sortKey"];
break;
case 4:
[dic setObject:od.strShopName forKey:@"sortKey"];
break;
case 5:
[dic setObject:od.strTel forKey:@"sortKey"];
break;
default:
break;
}
[dic setObject:od forKey:@"sortObject"];
[sortArray addObject:dic];
[dic release];
}
NSSortDescriptor *sorter = [[NSSortDescriptor alloc] initWithKey:@"sortKey" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:&sorter count:1];
NSArray * tempArray = [sortArray sortedArrayUsingDescriptors:sortDescriptors];
[sorter release];
[sortedArray removeAllObjects];
for (NSMutableDictionary *dic in tempArray) {
ProductData * pd = [dic objectForKey:@"sortObject"];
[sortedArray addObject:pd];
}
}