在 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)
}
}
我有这个简单的 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)
}
}