在展开可选值时意外发现 nil
Posted
技术标签:
【中文标题】在展开可选值时意外发现 nil【英文标题】:unexpectedly found nil while unwrapping an Optional value 【发布时间】:2017-05-09 10:06:20 【问题描述】:我把m3u8放在GCDWebServer里播放。当我使用 Wi-Fi 时,没问题。但是使用4G,就出现了这个问题。
【问题讨论】:
使用if let
安全地解开选项
【参考方案1】:
您在代码中强制解包 m3u8
。如果那是nil
,你就会遇到问题。您是说当您使用!
强制展开时它永远不会为零。
您可以使用if let
方法,也可以测试nil
。
// Are you sure dataServer isn't nil too here?
if let serverAddress = dataServer!.serverURL.URLByAppendingPathComponent(self.m3u8)
//Should be safe
或者
if m3u8 == nil
print("m3u8 is nil")
return
【讨论】:
【参考方案2】:我已经解决了问题。当我使用4g时,访问dataServer!ServerURL是nil。我的解决方法是给它一个本地IP
if davServer?.serverURL == nil
serverAddress = NSURL.init(string: "http://localhost/playts.m3u8")!
else
serverAddress = (davServer?.serverURL.URLByAppendingPathComponent(self.m3u8!))!
【讨论】:
以上是关于在展开可选值时意外发现 nil的主要内容,如果未能解决你的问题,请参考以下文章
@IBInspectable 致命错误:在展开可选值时意外发现 nil
Alamofire 平面错误:在展开可选值时意外发现 nil