
获得徽章 0
赞了这篇沸点
#分享一个Swift的小知识点#
随着Swift5的发布,周围开始正式学习Swift的开发者变多了,今天分享一个关于Swift中String的知识点,对准备从Objc迁移到Swift的开发者来说,应该有一些帮助。
在Objc中读取NSString长度使用的是.length,length返回的是基于UTF-16的长度。而在Swift中读取String的长度,通常使用的是count,而count本身返回的是characters.count,只是Unicode字符个数。这两者的区别在纯文本中看不出来,但是包含Emoji的时候就十分明显了。
举个例子:“😆😆😆😆😆😆”,用Objc的length读取返回的是12,而用Swift的count读取返回的是6,这在做一些富文本插入操作时,得到的结果绝不会是你想要的。
不过不用担心,Swift有专门的utf16.count来对应NSString的.length,在使用的时候只需要string.utf16.count就可以得到与Objc中length相同的结果。但是这么长显然太繁琐了是不是,用extension解决掉:
extension String {
var length: Int {
get {
return self.utf16.count
}
}
}
// 使用
let emoji = “😆😆😆😆😆😆”
emoji.length // return 12
这样一来,在Swift的String中也可以保持和Objc中NSString相同的书写习惯了
随着Swift5的发布,周围开始正式学习Swift的开发者变多了,今天分享一个关于Swift中String的知识点,对准备从Objc迁移到Swift的开发者来说,应该有一些帮助。
在Objc中读取NSString长度使用的是.length,length返回的是基于UTF-16的长度。而在Swift中读取String的长度,通常使用的是count,而count本身返回的是characters.count,只是Unicode字符个数。这两者的区别在纯文本中看不出来,但是包含Emoji的时候就十分明显了。
举个例子:“😆😆😆😆😆😆”,用Objc的length读取返回的是12,而用Swift的count读取返回的是6,这在做一些富文本插入操作时,得到的结果绝不会是你想要的。
不过不用担心,Swift有专门的utf16.count来对应NSString的.length,在使用的时候只需要string.utf16.count就可以得到与Objc中length相同的结果。但是这么长显然太繁琐了是不是,用extension解决掉:
extension String {
var length: Int {
get {
return self.utf16.count
}
}
}
// 使用
let emoji = “😆😆😆😆😆😆”
emoji.length // return 12
这样一来,在Swift的String中也可以保持和Objc中NSString相同的书写习惯了
展开
2
10
赞了这篇沸点
#权利的游戏#
别再苦苦找资源了,iOS用户的福音:
<快捷指令>
在手机浏览器中打开下面的链接,获取权力的游戏快捷指令,1-7季全集,第8集无删减字幕版,指令内秒速观看,无需下载
仅限iOS用户
www.icloud.com
别再苦苦找资源了,iOS用户的福音:
<快捷指令>
在手机浏览器中打开下面的链接,获取权力的游戏快捷指令,1-7季全集,第8集无删减字幕版,指令内秒速观看,无需下载
仅限iOS用户
展开
26
25
赞了这篇沸点
赞了这篇沸点
26
19
赞了这篇沸点
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇沸点
一直觉得换工作的成本很高,但也是最能体现“离开平台后你还剩什么”的过程。
从离职流程、面试、适应新环境一步步走来,每次都有一番难以言喻的感慨。
有得有失,每次的选择都会让人更成熟,有时候我们还是需要勇敢的走出来。
共勉!
从离职流程、面试、适应新环境一步步走来,每次都有一番难以言喻的感慨。
有得有失,每次的选择都会让人更成熟,有时候我们还是需要勇敢的走出来。
共勉!
8
55
赞了这篇沸点
「今日掘学」
- 和搜索引擎打交道,不停地提交链接,出了 error 早点修复,否则惩罚厉害
- 相对链接很容易出 bug,一定要在产品里慎用
- 社区文化很重要,掘金要推真正有价值的内容给用户,并留下那些能够贡献好内容的作者!!!
- 和搜索引擎打交道,不停地提交链接,出了 error 早点修复,否则惩罚厉害
- 相对链接很容易出 bug,一定要在产品里慎用
- 社区文化很重要,掘金要推真正有价值的内容给用户,并留下那些能够贡献好内容的作者!!!
展开
4
11