美文网首页
iOS中/英/韩简单通讯录排序(Objective-C)

iOS中/英/韩简单通讯录排序(Objective-C)

作者: Raywf | 来源:发表于2018-03-19 22:01 被阅读0次

    2018.3.19
    demo下载地址 GitHub
    demo是基于objective-c的纯代码实现,已剥离xib,关于xib的本地化实现,这里没有。

    README
    iOS中/英/韩简单通讯录排序(Objective-C)
    PS,仅考虑首个字符的排序问题,同时未考虑性能优化的问题
    
    1.英文通讯录排序;
        a.直接取出首个字符,转成大写字母并将其作为key,按Key存入相应数组即可,
    
    2.中文通讯录排序;
        a.首先取出首个字符,
        b.利用CFStringTransform方法获得中文字对应的拼音首字母,因为多音字的问题,
          需要额外针对常用的多音字取某一常用音的处理,详见方法 - (NSString *)transformMandarinToLatin:(NSString *)hanzi
        c.将字母转成大写,按key将原始字符串存入相应数组,
    
    3.韩文通讯录排序;
        a.首先取出首个字符,
        b.确定通讯录需要的key为韩文19个初始辅音,
        c.利用NSString中的方法characterAtIndex:将首个字符进行(ASCII转Unicode)处理,并获得一个Unicode值,
        d.根据(资料参考2.)提到的资料, 利用公式 (int)((Unicode - 44032) / 588) 来解构,
        e.在初始辅音数组中找到对应下标的初始辅音字符,
        f.将上面解构出的初始辅音字符作为key,按key将原始字符串存入相应数组,
    
    主要示例文件
    简单的代码实现中英韩通讯录排序,便于二次开发/自定义需求的实现。
    RFSimpleAddressBookSortingView.h
    RFSimpleAddressBookSortingView.m
    
    调用方式
    1.示例代码:详见demo中的 ViewController.m 文件。
    

    资料参考:
    1.Sorting and Grouping of Korean Character (Not familiar with Korean language)
    2.Korean language and computers
    3.Unicode编码转换,ASCII转Unicode
    4.NSString, characterAtIndex:
    5.CFString

    相关文章

      网友评论

          本文标题:iOS中/英/韩简单通讯录排序(Objective-C)

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