iOS汉字转换成拼音

面对输入的中文如何转化为拼音问题,本想找个第三方框架看看有没有能实现这功能的,Google之后才发现原来苹果原生的CFStringTransform 方法就能做到这一转化,就马上实践下了,顺便可以写个字符串转拼音的分类。

CFStringTransform

NSString *word = @"闻人超杰";
CFMutableStringRef mutStr = CFStringCreateMutableCopy(NULL, 0, (__bridge CFStringRef)(word));
CFStringTransform(mutStr, NULL, kCFStringTransformMandarinLatin, NO);
// NSLog(@"%@",mutStr); // wén rén chāo jié
CFStringTransform(mutStr, NULL, kCFStringTransformStripDiacritics, NO);
NSString * string = (__bridge NSString *)(mutStr); 
#warning !!!! --- string 引用了 mutStr所在的内存,需要在string使用后进行release操作
CFRelease(mutStr);

注意点

由于CFStringTransform 是CoreFoundation的框架,使用CFStringCreateMutableCopy 函数需要手动释放字符串,在适合的时机调用CFRelease 方法,不然会有内存泄露,最好进行静态代码分析工具查看时候存在内存泄露。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,562评论 25 709
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,839评论 18 399
  • 29.理解引用计数 Objective-C语言使用引用计数来管理内存,也就是说,每个对象都有个可以递增或递减的计数...
    Code_Ninja阅读 1,583评论 1 3
  • 在南屋和第二排房子之间是宽敞的前院。 前院 院子里沿东院墙向北,一溜儿依次是杏桃嫁接树一棵,梨树一棵,最后是一棵石...
    翊M阅读 340评论 3 2
  • 前几天看到一句话:那一年,最爱你,却最爱不起你。不敢苟同。很自然地想起了董哥和陈陈​,想写写他们的故事。 1 “你...
    张赶赶阅读 763评论 6 6