面對輸入的中文如何轉化為拼音問題,本想找個第三方框架看看有沒有能實現這功能的,Google之后才發(fā)現原來蘋果原生的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 方法菌赖,不然會有內存泄露,最好進行靜態(tài)代碼分析工具查看時候存在內存泄露沐序。