在Swfit 中 對(duì)于 nil 的用法更為嚴(yán)謹(jǐn)了,與OC 中對(duì)于 nil 對(duì)象的用法隨意性形成了很大的區(qū)別,swift中也許一不小心就因?yàn)閷?duì)于 nil 對(duì)象操作導(dǎo)致crash崩潰,下面介紹了 在swift中nil 的一些基本知識(shí):
var str: String? = nil? // 代表空,無對(duì)象,
var str1: String? = ""? // 有對(duì)象,為空對(duì)象
NSString *str2 = nil
print(str.chracters.count)?? // 會(huì)Crash , 因?yàn)閟tr 無對(duì)象,而OC打印str2.length 不會(huì)Crash,輸出0
print(str.isEmpty()) // 會(huì)Crash , 因?yàn)閟tr 無對(duì)象,isEmpty這里判斷字符的個(gè)數(shù)
print(str1.isEmpry())? // 輸出 0
而OC str2.isEmpty() // 不會(huì)Crash
所有在Swift nil 與OC 里面的 nil 是有區(qū)別的, Swift 里面的nil 對(duì)象 不能對(duì)其作操作 只能判斷是否為 nil(例如str ==nil or str != nil)只有確定對(duì)象不為nil 的情況下 才能對(duì)對(duì)象進(jìn)行操作,否則則會(huì)crash。
PS: 有什么問題歡迎留言。