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