0
データを読み込むための次の機能があります。この関数は数日前にうまく機能しました。アプリケーションがクラッシュしてURLを読み込もうとしました。下記のコードとスクリーンショットを参照してください。わずか数日年IOS /迅速コーディング、それはかなり難しい間違っているかを把握するために...App突然クラッシュロードのURL
class func loadDataFromURL(_ url: URL, completion:@escaping (_ data: Data?, _ error: NSError?) -> Void) {
let session = URLSession.shared
// Use NSURLSession to get data from an NSURL
let loadDataTask = session.dataTask(with: url, completionHandler: { (data: Data?, response: URLResponse?, error: NSError?) -> Void in
if let responseError = error {
completion(nil, responseError)
} else if let httpResponse = response as? HTTPURLResponse {
if httpResponse.statusCode != 200 {
let statusError = NSError(domain:"com.xyz", code:httpResponse.statusCode, userInfo:[NSLocalizedDescriptionKey : "HTTP status code has unexpected value."])
completion(nil, statusError)
} else {
completion(data, nil)
}
}
} as! (Data?, URLResponse?, Error?) -> Void)
loadDataTask.resume()
}
このように、Swift 3では 'dataTask'の' completionHandler'のシグネチャが変更されています。 { }で無効にしてください 'を追加する必要はありません! 'としてください。'(データ:レスポンス:URLResponse ?,エラー:エラー? (Data ?, URLResponse ?, Error?) - > Void) '最後に –
*どこがクラッシュするのか知っていますか?そうでない場合は、各行の後にいくつかのブレークポイントおよび/またはprintステートメントを配置してください。それが私たちを*なぜ*クラッシュさせるのかに近づけます。 – LinusGeffarth