2017-04-13 17 views
0

このコードをRay Wenderlichからテストして、URLからデータをダウンロードします。私はそれを動作させましたが、私はXcode 8.3にアップデートしました。そして今、突然それはもう動作しません。次のリンクSWIFT: Error EXC_BAD_INSTRUCTIONで問題が解決されたというアドバイスを受けましたが、try!オプションを使用するか、示唆どおりにdo-catchを追加しても、エラーは消えませんでした。ここでは、コード再びです:Xcode 8.3でloadDataFromURLを使用した場合の迅速なエラー

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 = try! session.dataTask(with: url, completionHandler: { (data: Data?, response: URLResponse?, error: NSError?) -> Void in 
       if let responseError = error { 
       completion(nil, responseError) 
       print("something went wrong 1") 

       //activityIndicator.stopAnimating() 
       } else if let httpResponse = response as? HTTPURLResponse { 
       if httpResponse.statusCode != 200 { 
       let statusError = NSError(domain:"com.raywenderlich", code:httpResponse.statusCode, userInfo:[NSLocalizedDescriptionKey : "HTTP status code has unexpected value."]) 
        completion(nil, statusError) 
       } else { 
        completion(data, nil) 
        //activityIndicator.stopAnimating() 
       } 
       } 

      } as! (Data?, URLResponse?, Error?) -> Void) //error is thrown here!! 

     loadDataTask.resume()  
} 
} 

私は私が最後の行でエラーコードを取得するコードを実行すると:「スレッド1:EXEC_BAD_INSTRUCTION(コード= EXC_I386_INVOP、サブコード= 0x0の)」

+0

NSErrorの代わりにエラーが発生するはずです。 –

+0

はい、これはうまくいきました。私がエラーに変わったら、私はダウンキャストを外すことができました。理由は分かりませんか?とにかく、それは動作します。これをあなたの正式な答えにして、それをチェックしてもらえますか?ありがとう – kangarooChris

答えて

0

が、私はこれを持っていました私はデータを解析しようとしたときに問題が発生しました非同期に、それはエラーを取り除き、うまくいった。私は確信していませんが、あなたの問題も解決するかもしれません。

関連する問題