use*_*377 6 arrays xcode objective-c
我有一个我用NSMutableDictionary填充的数组..我使用这个:
myArray =[[myDict allKeys]sortedArrayUsingSelector:@selector(IDONTKNOW:)];
Run Code Online (Sandbox Code Playgroud)
AllDicts的AllKeys是NSStrings ...比如123.423或423.343 ......我需要用增量数字对新的myArray进行排序.. 12.234 45.3343 522.533 5432.66等等
必须在@selector中插入什么来正确执行此操作?谢谢
Joe*_*Joe 20
您可以使用an NSSortDescriptor和pass doubleValue作为键.
//sfloats would be your [myDict allKeys]
NSArray *sfloats = @[ @"192.5235", @"235.4362", @"3.235", @"500.235", @"219.72" ];
NSArray *myArray = [sfloats sortedArrayUsingDescriptors:
@[[NSSortDescriptor sortDescriptorWithKey:@"doubleValue"
ascending:YES]]];
NSLog(@"Sorted: %@", myArray);
Run Code Online (Sandbox Code Playgroud)
你不能直接使用sortedArrayUsingSelector:.sortedArrayUsingComparator:自己使用并实现比较块.
有点像这样q/a:
更改 - [NSArray sortedArrayUsingComparator:]的排序顺序
(事实上,这个问题的代码可能可以复制/粘贴到你的代码,它会"只是工作",一旦你从改变integerValue到doubleValue四个转换字符串到数字电话):
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;
}];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6410 次 |
| 最近记录: |