`
啸笑天
  • 浏览: 3434841 次
  • 性别: Icon_minigender_1
  • 来自: China
社区版块
存档分类
最新评论

CFString​Transform

    博客分类:
  • ios
 
阅读更多

关于一种语言好不好用,你只需要衡量以下两种指标:

  1. API 的统一性
  2. String 类的实现质量

NSString 是基础类库中的佼佼者。在那个其他语言 仍在 艰难地正理处理 Unicode 的时代,NSString是尤其让人印象深刻的。不仅仅是任何内容扔在它里面就能 正确工作 ,NSString 还能将字符串解析成语法标签、检测出内容中的首要语言,并且在任意你能想到的字符编码中转换。它好用得离谱。

它虽然很强大,但是不提提它的可无缝转换(toll-free bridged)的表兄弟 CFMutableString,或者更特殊的 CFStringTransform,是不负责任的。

正如它的 CF 前缀所表述的一样,CFStringTransform 是 Core Foundation 中的一部分。这个函数传入以下参数,并返回一个 Boolean 来表示转换是否成功:

  • string: 需要转换的字符串。由于这个参数是 CFMutableStringRef 类型,一个NSMutableString 类型也可以通过自由桥接的方式传入。
  • range: 转换操作作用的范围。这个参数是 CFRange,而不是 NSRange
  • transform: 需要应用的变换。这个参数使用了包含下面将提到的字符串常量的 ICU transform string
  • reverse: 如有需要,是否返回反转过的变换。

CFStringTransform 中的 transform 参数涉及的内容很多。这里有个它能做什么的概述:

去掉重音和变音符

Énġlišh långuãge lẳcks iñterêßţing diaçrïtičş. 如此类的字符串,把扩展的拉丁字符集正则化为 ASCII 友好型的表示,它非常有用。用 kCFStringTransformStripCombiningMarks 变换来去掉任意字符串中弯弯扭扭的符号。

为 Unicode 字符命名

kCFStringTransformToUnicodeName 让你可以找出特殊字符的 Unicode 标准名,包括 Emoji。例如:"

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics