问题缘由:在程序开发当中,我们可能遇到需要将中文转化为拼音的情况,其实主要是做类似于通讯录功能的时候会出现这种情况,iOS在CoreFoundation中提供了CFStringTransform函数,我们可以直接调用其中的函数:
CFStringTransform(CFMutableStringRef string, CFRange *range, CFStringRef transform, Boolean reverse);
代码说明,方法中使用的字符串为可变字符串; 当我们第一次调用上面的函数的时候生成拼音是有音标的,但是当我们对生成的带有音标的拼音再次调用函数这一次生成的则是没有音标的拼音,需要什么类型的,自己对应的改变一下就好.
NSString *hanziText = @"神经骚栋";
if ([hanziText length]) {
NSMutableString *ms = [[NSMutableString alloc] initWithString:hanziText];
if (CFStringTransform((__bridge CFMutableStringRef)ms, 0, kCFStringTransformMandarinLatin, NO)) {
NSLog(@"pinyin: %@", ms);
}
if (CFStringTransform((__bridge CFMutableStringRef)ms, 0, kCFStringTransformStripDiacritics, NO)) {
NSLog(@"pinyin: %@", ms);
}
}
网友评论