iPh*_*Dev 3 sorting iphone objective-c
我有一个数组,其中包含frame_10@3x.png,frame_5 @ 3x.png,frame_19 @ 3x.png等字符串.所以我想根据下划线后面的数字排序这个数组,即正确的序列是frame_5 @ 3x巴纽,frame_10 @ 3x.png,frame_19 @ 3x.png.
我尝试使用以下方法但没有结果:
NSInteger firstNumSort(id str1, id str2, void *context) {
int num1 = [str1 integerValue];
int num2 = [str2 integerValue];
if (num1 < num2)
return NSOrderedAscending;
else if (num1 > num2)
return NSOrderedDescending;
return NSOrderedSame;
}
Run Code Online (Sandbox Code Playgroud)
请建议如何对数组进行排序.
NSArray *sry_img = [[NSArray alloc] initWithObjects:@"frame_18@3x.png",@"frame_17@3x.png",@"frame_1222@3x.png",@"frame_10@3x.png",@"frame_3@3x.png",@"frame_4@3x.png",@"frame_4@3x.png",@"frame_1@3x.png",@"frame_4@3x.png",@"frame_4@3x.png",nil];
NSArray *sortedStrings = [sry_img sortedArrayUsingSelector:@selector(localizedStandardCompare:)];
NSLog(@"%@",sortedStrings);
Run Code Online (Sandbox Code Playgroud)
恩吉.......
但是,只要文件名或其他字符串出现在适合类似Finder的排序的列表和表中,就应该使用在10.6中添加的localizedStandardCompare:.此方法的确切行为可能会在将来的版本中进行调整,并且在不同的本地化下会有所不同,因此客户端不应该依赖于字符串的确切排序顺序.
| 归档时间: |
|
| 查看次数: |
1734 次 |
| 最近记录: |