iOS:通讯录中英文混合字符串数组按照首字母排序

iOS开发中,常用数组可对英文进行升序、降序的有序排列。
如果需要支持中文的排序的话,目前的话我算是找到了几种方法吧。
1、可以Core Foundation框架将中文转为拼音,再而进行排序,不过此方法效率低下,实在不推荐。
2、利用UILocalizedIndexedCollation
3、有朋友已经根据George写的中文转拼音首字母的函数pinyinFirstLetter写了个算是比较好demo吧,可以作为参考一下。http://my.oschina.net/u/868062/blog/205098
4、可以利用NSString 中的方法- (NSComparisonResult)localizedCompare:(NSString *)string;
5、PinYin4obj https://github.com/kimziv/PinYin4Objc (带缓存、高效率)

存在的问题:
1、效率问题
2、多音字问题

目前我仅仅基于前两种做了个比较简单的demo。
https://github.com/wizetLee/TranslateIntoSpellingWithChineseCharacters

iOS:通讯录中英文混合字符串数组按照首字母排序_第1张图片
录制的gif.gif

联系人列表多音字:http://www.smartisan.com/special/#/duoyinzi

你可能感兴趣的:(iOS:通讯录中英文混合字符串数组按照首字母排序)