swift nsurlconnection致命错误:在展开Optional值时意外发现nil

时间:2015-03-30 22:18:48

标签: swift nsurlconnection


我正在使用以下代码下载
来自我的服务器的一些xml数据

//Build & Request the Url
let url = NSURL(string: "http://sample.com")
let request: NSURLRequest  = NSURLRequest(URL: url!)
var response: AutoreleasingUnsafeMutablePointer<NSURLResponse?
>=nil
var error: NSErrorPointer = nil
var xmlData: NSData =  NSURLConnection.sendSynchronousRequest(request, returningResponse: response, error:nil)!
var err: NSError

大部分时间都按预期工作。但如果我断开互联网连接 并关闭应用程序并在连接互联网时再次打开 它抛出致命错误

var xmlData: NSData =  NSURLConnection.sendSynchronousRequest(request, returningResponse: response, error:nil)!

这似乎是&#34;错误&#34;线。 因为只有在断开/重新连接互联网之后才会发生这种情况 也许我应该刷新NSURLCONNECTION或其他东西,我不知道 我在想这是因为它大部分时间都按预期工作 也许我断开NSURLCONNECTION后没有正确检测到 设备重新连接。

任何帮助/建议都将受到高度赞赏 谢谢。

2 个答案:

答案 0 :(得分:0)

添加nil合并

var xmlData: NSData? =  NSURLConnection.sendSynchronousRequest(request, returningResponse: response, error:nil) ?? nil 

答案 1 :(得分:0)

你应该使用问题可选标记,因为它可以是nil

var xmlData: NSData? = NSURLConnection.sendSynchronousRequest(request, returningResponse: response, error:nil)

var xmlData: NSData = NSURLConnection.sendSynchronousRequest(request, returningResponse: response, error:nil)?

var xmlData = NSURLConnection.sendSynchronousRequest(request, returningResponse: response, error:nil) as? NSData