作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
以下行在模拟器中运行良好,但在实际设备上却不行。它给了我错误:fatal error: expectedly found nil while unwrapping an Optional value
var urlData:NSData = NSURLConnection.sendSynchronousRequest(request, returningResponse:&response, error:&error)!
另一个项目中的原件没有 !
最后,它在 beta5 中 100% 工作,现在在 beta6 中,它会抛出错误,除非我输入它。它仍然有效模拟器,但我的 iPhone 上没有?
有什么想法吗?
最佳答案
我认为你的应用程序在设备中运行时一定有问题(例如它连接到的 URL/IP)。
如果它抛出该错误,则意味着 sendSynchronousRequest
返回 nil。我的建议是:
urlData
可选 var urlData: NSData? = ...
,稍后检查它是否有值不要对可以为 nil 的值使用强制解包,这一点非常重要。这总是会产生运行时错误,所以我认为这是一种不好的做法。您应该将强制解包限制在您 100% 确定可选值具有值的情况下,例如当您在不使用可选绑定(bind)的情况下明确检查该值时。
至于服务器/请求检查,我经常在模拟器中运行时向本地开发服务器发出请求,而在使用设备时向生产或暂存远程服务器发出请求。也许您正在代码中做类似的事情。
关于xcode - 在设备上解包时出现 sendSynchronousRequest 错误,在模拟器中有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25593372/
我是一名优秀的程序员,十分优秀!