在 iOS 9 中禁用网络时,HTTP GET 请求出现致命错误

HTTP GET request gets fatal error when network is disabled in iOS 9

我有这个简单的 HTTP GET 请求:

@IBAction func MyButton(sender: AnyObject) {
    let url = NSURL(string: "http://api.openweathermap.org/data/2.5/weather?q=Tehran,ir")
    let task = NSURLSession.sharedSession().dataTaskWithURL(url!) {(data, response, error) in
        let datastring = NSString(data:data!, encoding:NSUTF8StringEncoding) as? String
        if error == nil {
        print("data is:")
        print(datastring)
        }else{
            if let err:String? = String(error?.description){
                print("faced to this error: \(err)")
            }
        }
    }
    task.resume()
}

当网络可用时,数据将被正确接收,但是当我关闭 WIFI 并单击按钮时,我遇到了这个错误:

fatal error: unexpectedly found nil while unwrapping an Optional value

如何处理请求中的网络错误? 我在 iPod touch 上使用 iOS 9 和 Xcode 7 beta release 6,我没有开发者计划会员资格

您可以使用 Reachability 库来检查互联网连接。非常好用。

更新

您必须在检查错误后获取您的数据:

let task = NSURLSession.sharedSession().dataTaskWithURL(url!) {(data, response, error) in
    if error == nil {
        let dataString = NSString(data:data!, encoding:NSUTF8StringEncoding) as? String
        println(dataString)
    } else {
        println(error)
    }
}