使用Swift,處理錯誤和從可能引發錯誤的方法中檢索數據的正確方法在「Swift編程語言」的Error Handling部分進行了說明。
因此,根據您的需要,您可以選擇以下三種模式之一來解決您的問題。
1.檢索數據,並使用do-catch
和try
關鍵字
您使用do-catch
聲明運行的代碼塊來處理錯誤處理錯誤。如果do
子句中的代碼引發錯誤,則會將其與catch
子句進行匹配,以確定哪個子句可以處理該錯誤。
用法:
let plistUrl = Bundle.main().urlForResource("Books", withExtension: "plist")!
let plistData: Data?
do {
plistData = try Data(contentsOf: plistUrl)
} catch {
print(error as NSError)
plistData = nil
}
print(plistData)
2.檢索數據,並使用try?
關鍵字
您使用try?
處理錯誤的將其轉換爲一個可選的轉換錯誤,可選值值。如果在評估try?
表達式時發生錯誤,則表達式的值爲零。
用法:
let plistUrl = Bundle.main().urlForResource("Books", withExtension: "plist")!
guard let plistData = try? Data(contentsOf: plistUrl) else {
return
}
print(plistData)
3.使用try!
關鍵字
有時候你知道投擲函數或方法將不檢索數據,並禁用錯誤傳播,事實上,在運行時拋出一個錯誤。在這種情況下,您可以在表達式之前編寫try!
以禁用錯誤傳播並將該調用包裝在運行時斷言中,以避免引發錯誤。如果實際發生錯誤,您將收到運行時錯誤。
用法:
let plistUrl = Bundle.main().urlForResource("Books", withExtension: "plist")!
let plistData = try! Data(contentsOf: plistUrl)
print(plistData)
這奏效了!我知道它必須是一些愚蠢簡單的東西。 –