我努力不要毫无疑问地提出问题,但这会让我浪费几个小时的时间,现在让我放弃,希望有人可以帮助我。
我根本无法正确地订购包含花车的NSArray,我能得到的最接近的就是这个。
使用以下
填充数组[combosMasterLength addObject:[NSString stringWithFormat:@"%0.1f", finalL]];
NSMutableSet* set1 = [NSMutableSet setWithArray:combosMasterLength];//Array Final Length
NSMutableSet* set2 = [NSMutableSet setWithArray:CombosMasterWidth];//Array Final Width
[set1 intersectSet:set2]; //this will give me only the objects that are in both sets
NSArray *combos = [set1 allObjects];//cread my combos array with the unique values
NSArray* sortedArray = [combos sortedArrayUsingSelector:@selector(compare:)];//my sorting statment not quite working
NSLog(@"SORTED ARRAY %@",sortedArray);
我从输出中得到的是: -
"1.2",
"1.5",
"12.0",
"2.0",
"2.4",
"3.0",
"4.0",
"6.0"
我知道问题是什么,我只是根本不知道如何对它进行排序,我尝试了参考苹果文档,但它们现在已经超越了我的脑袋,任何人都有任何想法,我将如何排序这样它返回
"1.2",
"1.5",
"2.0",
"2.4",
"3.0",
"4.0",
"6.0"'
"12.0"
先谢谢 H先生
答案 0 :(得分:0)
由于您似乎想要按数值对NSString进行排序,因此您需要将值转换为数值并与之进行比较。您可以这样做,例如,使用sortedArrayUsingComparator
;
NSArray *myArray = [NSArray arrayWithObjects:
@"1.2", @"1.5", @"12.0", @"2.0",
@"2.4", @"3.0", @"4.0", @"6.0", nil];
NSArray *sorted = [myArray sortedArrayUsingComparator:
^NSComparisonResult(NSString *obj1, NSString *obj2)
{
if ([obj1 doubleValue] > [obj2 doubleValue])
return NSOrderedDescending;
else if ([obj1 doubleValue] < [obj2 doubleValue])
return NSOrderedAscending;
return NSOrderedSame;
}
];
NSLog(@"%@", sorted);
> (
"1.2",
"1.5",
"2.0",
"2.4",
"3.0",
"4.0",
"6.0",
"12.0"
)