多语言展示
当前在线:1601今日阅读:61今日分享:18

Swift汉字转拼音

iOS或者OS X开发过程中,总会遇到一些汉字取拼音的操作,之前遇到的一些第三方大多是自己做一些字典,然后查询。其实OC或者Swift在OS X或者iOS上可以利用系统的API获取汉字的拼音,下面简单介绍一下使用方式。同事介绍如何封装了一个库,方便需要时候可以直接使用
工具/原料
1

macOS High Sierra(10.13.3)

2

XCode9.2

方法/步骤
1

首先介绍下如何使用系统API直接获取拼音。

2

大概解释下let cfString = CFStringCreateMutableCopy(nil, 0, source as CFString)将String转成CFString,以便于进一步操作 CFStringTransform(cfString, nil, kCFStringTransformToLatin, false)是为了转拼音 CFStringTransform(cfString, nil, kCFStringTransformStripCombiningMarks, false)是为了将拼音中的声调去掉,需要保留声调可以不执行这步

3

以上就可以简单地获取汉字的拼音,但是会有问题,一些自定义的方式,比如首字母大写之类的需求需要自己处理,为了解决这个问题我们把这个封装下,我们这里起名叫做K3Pinyin,你也可以随便起个名字

4

先来看下结构,是不是特别简单

5

再来看看实现,第一部是实现K3Pinyin的struct,并且给他添加拼音属性及方法

6

第二步是实现协议,让String及NSString支持pinyin

7

处理下Option支持问题

8

为了方便读取option,我们再给collection添加一个extension

9

以上就是整个实现过程,我们看下使用方式,我截取单元测试中的一部分作为示例:

推荐信息