在Swfit 中 對于 nil 的用法更為嚴(yán)謹(jǐn)了宣肚,與OC 中對于 nil 對象的用法隨意性形成了很大的區(qū)別,swift中也許一不小心就因為對于 nil 對象操作導(dǎo)致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: 有什么問題歡迎留言处铛。