由于iOS
的系统原生库已经支持了汉字转拼音,所以很多时候我们都可以直接进行转换,但是系统的转换很多时候都存在问题,在需要具体拼音的时候我们一般都会使用第三方库来进行转换。
在OC
中,我认为Pinyin4ObjC
是一个做的不错的库,支持汉字,语句到拼音的转换,而且支持多音字的处理。但不幸的是,该库的作者并没有实现Swift
版本。这种情况下,我就自己动手,参考Pinyin4ObjC
的代码,做了一个Pinyin4Swift
的库。
Pinyin4Swift
的代码和接口和Pinyin4ObjC
基本一样,不过减少了一些原作者并没有实现的API
接口,新增了一个获取首字母的接口,主要用于搜索。
使用方法上Pinyin4Swift的方法和Pinyin4Objc类似,就是调用PinyinHelper的对应方法来获取中文的拼音内容。如要获取“我爱中文”的拼音,可以用如下代码:
PinyinHelper.getPinyinStringWithString("我爱中文", outputFormat: OutputFormat(vCharType: .uUnicode, caseType: .lower, toneType: .noTone))
对应的输出将是
wo ai zhong wen
对于多音字,我们可以使用PinyinHelper.toPinyinStringArrayWithChar
方法来获取对应的多个读音,如“乐”字:
PinyinHelper.toPinyinStringArrayWithChar("乐", outputFormat: OutputFormat(vCharType: .uUnicode, caseType: .lower, toneType: .toneMark))
将会输出它对应的两个读音:["lè", "yuè"]
相对于Pinyin4Objc,Pinyin4Swift新增了获取首字母的功能,可以让用户更方便的进行通讯录检索等功能的开发。
PinyinHelper.getHeaderLettersWithString("我是中国人!")
的输出将会是WSZGR
。