美文网首页
iOS中 中文转换成拼音 原生的做法

iOS中 中文转换成拼音 原生的做法

作者: JiYis | 来源:发表于2016-08-05 15:36 被阅读56次

    中文转换成拼音

    在做一款天气应用时,Api要求的参数是需要传入城市的拼音,原生的Foundation框架下没有相应的方法,但是iOS的CoreFoundation框架里提供了这样的一个函数,用来处理这类的要求。

    CFStringTransform函数
    
    //  官方的代码 用于生成一个不可变的CFString的可变copy
    
    // CFMutableStringRef CFStringCreateMutableCopy(CFAllocatorRef alloc, CFIndex maxLength, CFStringRef theString);
    
    /*
    
    参数1:创建
    
    参数2:最大的字符串长度,0表示无限制
    
    参数3:将要转换的字符串(C的字符串)
    
    */
    
    //  使用
    
    //  1.此时先将要转换的字符串,转换成能转换的CFMutableStringRef
    
    CFMutableStringRef tempString = CFStringCreateMuatbleCopy(NULL, 0, CFSTR(”成都“));
    
    //  2.将字符串进行转换
    
    /*
    
    参数1:待转换的字符串 tempString
    
    参数2:将要转换的范围 如果为NULL,则为全部转换
    
    参数3:转换的方式 kCFStringTransformMandarinLatin中文->拼音
    
    参数4:转换是否必须是可逆向的转换
    
    返回值:是否转换成功 true为成功 flase为失败
    
    */
    
    CFStringTransform(string, NULL, kCFStringTransformMandarinLatin, NO);
    
    NSLog(@"%@", tempString);
    
    

    此时转换之后,执行结果是这样的:

    chéng dōu

    这时是带有音标的,如果不需要音标,只需要在NSLog前再加上一句即可

    CFStringTransform(string, NULL, kCFStringTransformStripDiacritics, NO);

    输出结果为:

    cheng dou

    这样就能完成对中文->拼音的转换

    当然这样的方法,在做通讯录相关的东西的时候也是非常的实用!

    相关文章

      网友评论

          本文标题:iOS中 中文转换成拼音 原生的做法

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