Swiftで新しいエラー処理を使用する方法に関する質問があります。Swift 3のエラー処理と可変アクセシビリティ
私はデータオブジェクトにファイルの内容を読んでいる:
var overallData: Data?
//load file contents into data object
let dataFileURL = NSURL(string: fileName)
do {
overallData = try Data(contentsOf: dataFileURL as! URL)
} catch {
print("\(error)")
}
問題は、私はいつもこのエラーメッセージに遭遇することです:
fatal error: unexpectedly found nil while unwrapping an Optional value
問題はoverallData
オブジェクトがあるということですnil
と設定します。私は後でDO-キャッチ、
let dataFileURL = NSURL(string: fileName)
do {
overallData = try Data(contentsOf: dataFileURL as! URL)
} catch {
print("\(error)")
}
外のデータ変数を定義しない場合、システムはそれがまだ定義されていない変数の私に言って続けるので、しかし、私はoverallData
オブジェクトを使用することはできません。したがって、do-catchループで定義された新しい変数はループ内でのみローカルにアクセスできるように見えます。
この問題の解決方法をご存知ですか?私は他の場所でoverallData
オブジェクトを使用する必要があります。
[a init(fileURLWithPath:) '](https://developer.apple.com/reference/foundation/url/1780183-init) 'NSURL'ではなく' URL'です。 (b)はファイルURLです。 – Rob