2016-07-01 6 views
1

私のアプリでは、NSURLSessionが期限切れになっているかどうかを知りたいのですが、どうすればいいですか? この状態を処理することは非常に難しいです。swift 2.2でtimeoutIntervalForResourceのタイムアウトを処理する方法は?

import UIKit 
    class ViewController: UIViewController { 

      override func viewDidLoad() { 
       super.viewDidLoad() 
       downloadDetails() 
      }  

      func downloadDetails() { 
       let url = NSURL(string: "http://httpbin.org/get")! 
       let config = NSURLSessionConfiguration.defaultSessionConfiguration() 
       config.timeoutIntervalForResource = 3 
       config.timeoutIntervalForRequest = 3 
       let session = NSURLSession(configuration: config) 
       let task = session.dataTaskWithURL(url) { (data, response, error) -> Void in 
        do { 
         let dict = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.AllowFragments) as! [String:AnyObject] 
          dispatch_async(dispatch_get_main_queue()) { 
          print(dict) 
         } 
        } 
        catch { 
         print("json error: \(error)") 
        } 
       } 
       task.resume() 
      } 

答えて

2
let sessionDataTask = session.dataTaskWithRequest(sendLocationRequest) { (data, response, error) in 
     if error != nil {//Has error for request 
      if error?.code == -1001 { 
      //Domain=NSURLErrorDomain Code=-1001 "The request timed out." 
      } 
     } else { 
      if let httpRes = response as? NSHTTPURLResponse { 
      //Check code 
      if httpRes.statusCode == 200 { 
       //OK 
      } 
      //Other code 404,.... 
      } 
     } 
    } 
+0

それがうまく働いている...あなたの答えのためにあなたにLVietに感謝。 –

関連する問題