我试图将一系列价格从低到高排序。我有它的工作,但不是我想要的方式。长话短说,分拣机按顺序排列数字: 100 10900 200 290
而不是像这样排序
100 200 290 10900
这是我正在使用的代码。
-(void)filterPriceLowHigh {
NSSortDescriptor *sortDescriptor;
sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"ListPrice"
ascending:YES] autorelease];
NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
NSArray *sortedArray;
sortedArray = [app.vehiclesArrayToDisplay
sortedArrayUsingDescriptors:sortDescriptors];
[app.vehiclesArrayToDisplay removeAllObjects];
[app.vehiclesArrayToDisplay addObjectsFromArray:sortedArray];
}
有人可以告诉我这里需要做什么吗? 提前谢谢。
答案 0 :(得分:10)
像这样创建排序描述符:
sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"ListPrice"
ascending:YES
comparator:^(id obj1, id obj2) {
return [obj1 compare:obj2 options:NSNumericSearch];
}];
答案 1 :(得分:0)
您需要先将NSString转换为NSNumbers。查看NSNumberFormatter
和实例方法numberFromString
的文档。