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

中文转换成拼音

在做一款天气应用时,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中 中文转换成拼音 原生的做法)