美文网首页推送iOS基础·OC语法篇
iOS:通讯录中英文混合字符串数组按照首字母排序

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

作者: wizet | 来源:发表于2016-08-29 15:54 被阅读188次

    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

    录制的gif.gif

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

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/oduxettx.html