Swiftでは、エラーを処理し、エラーをスローする可能性のあるメソッドからデータを取得する適切な方法については、Swiftプログラミング言語のError Handlingセクションで説明しています。
したがって、必要に応じて、次の3つのパターンのいずれかを選択して問題を解決できます。
1.あなたは、コードのブロックを実行して、エラーを処理するためにdo-catch
ステートメントを使用し、データを取得し、do-catch
とtry
キーワード
を使用してエラーを処理します。 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?
式の評価中にエラーがスローされた場合、式の値はnilになります。
使用法:
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)
トリックをしました!私はそれが何かばかげて単純なものでなければならないことを知っていた。 –