面对输入的中文如何转化为拼音问题,本想找个第三方框架看看有没有能实现这功能的,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 方法,不然会有内存泄露,最好进行静态代码分析工具查看时候存在内存泄露。