解包 Optional 值时意外发现 nil

unexpectedly found nil while unwrapping an Optional value

我把m3u8放在GCDWebServer中播放。当我使用 Wi-Fi 时,没问题。但是用4G,出现这个问题

您正在代码中强制解包 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
}

我已经解决了problem.When我用4g,访问dataServer!ServerURLnil.my解决方案是给它一个本地IP

 if davServer?.serverURL == nil {
                serverAddress = NSURL.init(string: "http://localhost/playts.m3u8")!
            }else{
               serverAddress = (davServer?.serverURL.URLByAppendingPathComponent(self.m3u8!))!
            }