你不能直接使用sortedArrayUsingSelector:
. 自己使用sortedArrayUsingComparator:
和实现一个比较块。
有点像这样的q/a:
更改 -[NSArray sortedArrayUsingComparator:] 的排序顺序
(事实上,该问题的代码可能会被复制/粘贴到您的代码中,并且一旦您将其从 更改为integerValue
以doubleValue
进行四个 convert-string-to-number 调用,它就会“正常工作”):
NSArray *sortedArray = [array sortedArrayUsingComparator: ^(id obj1, id obj2) {
double n1 = [obj1 doubleValue];
double n2 = [obj2 doubleValue];
if (n1 > n2) {
return (NSComparisonResult)NSOrderedDescending;
}
if (n1 < n2) {
return (NSComparisonResult)NSOrderedAscending;
}
return (NSComparisonResult)NSOrderedSame;
}];