我有一个应用程序,它从服务器检索大量数值数据并将其保存到 NSMUtableArray
中。现在这些值是 float ,看起来像 10.0; 11.2; 30.003; 109.23等
现在我使用 sortUsingSelector(@selector(compare:))
方法对我的数组进行排序以找到最大值和最小值。我的输出如下:
10.0 109.23 11.2 30.003
现在我假设比较:选择器将值视为字符串并相应地对它们进行排序。但这不是我想要的。我希望根据浮点值对值进行排序。 所以我的问题是:有什么方法可以根据数值对 float 数组进行排序吗?
最佳答案
比较可能有一个捷径,并且没有错误检查,但像这样的事情应该可以解决问题:
NSArray* sorted = [unsorted sortedArrayWithOptions:0 usingComparator:^(id v1, id v2) {
float f1 = [v1 floatValue];
float f2 = [v2 floatValue];
if (f1 == f2) return NSOrderedSame;
return (f1 < f2) ? NSOrderedAscending : NSOrderedDescending;
}];
或者您可以在值传入时将其存储为 NSNumber
。
关于iphone - 使用比较 : selector 比较数组中的 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7972375/