在展开设备时发送sendSynchronousRequest错误,在仿真器中工作

时间:2014-08-31 15:20:18

标签: xcode swift xcode6-beta6

以下行在模拟器中工作得很好,但在实际设备上却没有。它给了我错误:fatal error: unexpectedly found nil while unwrapping an Optional value

var urlData:NSData = NSURLConnection.sendSynchronousRequest(request, returningResponse:&response, error:&error)!

另一个项目中的原始版本最后没有!,并且它在beta5中100%工作,现在处于beta6版本,除非我将其放入,否则会抛出错误。它仍可在模拟器中运行,但不是在我的iPhone上?

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我认为当您在设备中运行时,您的应用中肯定存在问题(例如它连接到的网址/ IP)。

如果它抛出该错误,则表示sendSynchronousRequest返回nil。我的建议是:

  • 制作urlData可选var urlData: NSData? = ...,稍后检查是否有值
  • 检查您要连接的服务器和/或请求中的参数是否正确

非常重要的是,不要对可能为零的值使用强制解包。这总是会产生运行时错误,所以我认为这是一个不好的做法。您应该将强制解包限制为100%确定可选项具有值的情况,例如在未使用可选绑定的情况下明确检查该值时。

对于服务器/请求检查,当我在模拟器中运行时,我经常向本地开发服务器发出请求,在使用设备时,我经常向生产或临时远程服务器发出请求。也许你在代码中做了类似的事情。