2016-07-01 7 views
1

In meiner App möchte ich wissen, ob NSURLSession abgelaufen ist, wie kann ich es tun? Es ist sehr schwer für mich, diesen Zustand zu behandeln.Wie Timeout für TimeoutIntervalForResource in Swift 2.2 behandeln?

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() 
      } 

Antwort

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

danke LViet für Ihre Antwort ... es gut funktioniert. –