swift學(xué)習(xí)筆記01 wift初見
- 變量始終在使用前初始化。
- 檢查數(shù)組索引超出范圍的錯誤。
- 檢查整數(shù)是否溢出。
- 可選值確保明確處理 nil 值。
- 內(nèi)存被自動管理资溃。
- 錯誤處理允許從意外故障控制恢復(fù)
- 不需要在每個語句結(jié)尾寫上分號。
第一個錯誤
真機(jī)運行烈炭,剛上來就報了個錯誤溶锭。先使用自己的開發(fā)者賬號,成功運行符隙,然后刪除app后選擇公司賬號趴捅,重新運行報錯
dyld: Library not loaded: @rpath/libswiftCore.dylib
Referenced from: /var/containers/Bundle/Application/0A0AA7BF-D8F0-4F85-AB5A-76C8988B50F8/SwiftDemo01.app/SwiftDemo01
Reason: no suitable image found. Did find:
/private/var/containers/Bundle/Application/0A0AA7BF-D8F0-4F85-AB5A-76C8988B50F8/SwiftDemo01.app/Frameworks/libswiftCore.dylib: code signature invalid for '/private/var/containers/Bundle/Application/0A0AA7BF-D8F0-4F85-AB5A-76C8988B50F8/SwiftDemo01.app/Frameworks/libswiftCore.dylib'
解決辦法
1.刪除程序垫毙,換回原來的賬號重新運行
2.command + shift + K (清除緩存)
這是兩個方法,不是兩個步驟拱绑!
可選值解包
- 你可以一起使用 if 和 let 來處理值缺失的情況
var optionalName: String? = nil
var greeting = "Hello!"
if let name = optionalName {//if let 語句综芥,當(dāng)optionName 有值時賦值給name,沒有值時不進(jìn)入true邏輯
greeting = "Hello, \(name)"
} else {
greeting = "Hello! nil"
}
如果變量的可選值是 nil,條件會判斷為 false猎拨,大括號中的代碼會被跳過膀藐。如果不是 nil,會將值解包并賦給 let 后面的常量红省,這樣代碼塊中就可以使用這個值了额各。
- 另一種處理可選值的方法是通過使用 ?? 操作符來提供一個默認(rèn)值。如果可選值缺失的話吧恃,可以使用默認(rèn)值來代替臊泰。
let nickName: String? = nil
let fullName: String = "John Appleseed"
let informalGreeting = "Hi \(nickName ?? fullName)"http://??,針對可選值的時候,當(dāng)可選值沒有值的時候就使用后面的默認(rèn)值
//解法1蚜枢,設(shè)置可選值的默認(rèn)值-Provide a default value to avoid this warning
print(sideLength ?? 1)
//解法2,用人格保證他有值-Force-unwrap the value to avoid this warning
print(sideLength!)
//解法3针饥,轉(zhuǎn)換為any -Explicitly cast to 'Any' with 'as Any' to silence this warning
print(sideLength as Any)