iOS 数组内中英文混合排序
2016-04-26 16:22
525 查看
NSInteger sortObjects(id obj1, id obj2,void *context) { NSMutableString * str1 = [[NSMutableString alloc]initWithString:obj1]; if (CFStringTransform((__bridge CFMutableStringRef)str1, 0, kCFStringTransformMandarinLatin, NO)) { } NSMutableString * str2 = [[NSMutableString alloc]initWithString:obj2]; if (CFStringTransform((__bridge CFMutableStringRef)str2, 0, kCFStringTransformMandarinLatin, NO)) { } return [str1 localizedCompare:str2]; } //先转为拼音,然后再进行排序。上面是进行转拼音,然后再排序的过程。 [otherNameArr sortUsingFunction:sortObjects context:NULL];//数组进行调用。 然后就完了。得到的数组就是从A~Z的过程了。
例子:
- (void)viewDidLoad { [super viewDidLoad]; NSMutableArray * arr = [NSMutableArray arrayWithObjects:@"中文",@"linxl",@"唐唐唐",@"abc", nil]; [arr sortUsingFunction:sortObjects context:NULL]; NSLog(@"arr - %@",arr); } NSInteger sortObjects(id obj1, id obj2,void *context) { NSMutableString * str1 = [[NSMutableString alloc]initWithString:obj1]; if (CFStringTransform((__bridge CFMutableStringRef)str1, 0, kCFStringTransformMandarinLatin, NO)) { } NSMutableString * str2 = [[NSMutableString alloc]initWithString:obj2]; if (CFStringTransform((__bridge CFMutableStringRef)str2, 0, kCFStringTransformMandarinLatin, NO)) { } return [str1 localizedCompare:str2]; }
打印:
2016-04-26 16:51:15.350 dd[65248:767376] arr - ( abc, linxl, "\U5510\U5510\U5510", "\U4e2d\U6587"
相关文章推荐
- iOS屏幕旋转学习笔记
- ios逆向工程入门笔记《自用》
- iOS集成极光推送
- iOS- 利用AFNetworking(AFN) - 实现图片上传
- iOS瀑布流
- iOS7 imageWithContentsOfFile 加载不出图片
- ios过滤emoji表情
- iOS开发--多线程编程(一)NSThread
- iOS开发 ☞ KVC详解
- mac pod 的使用总结
- 文件管理 - 2
- 个人常用iOS第三方库
- iOS中设置导航栏标题的字体颜色和大小
- iOS 页面间几种传值方式(属性,代理,block,单例,通知)
- iOS --延迟执行的几种方法
- iOS 曲线/圆形/三角形/弧线等视图的实现
- iOS图案锁,支持动画、图片、绘图
- iOS7 tabbar 阴影线问题
- iOS设计模式(代码分析系列2:简单工厂模式)
- iOS autolayout的使用