在展开Optional值时意外地发现了nil

时间:2017-05-09 10:06:20

标签: swift gcdwebserver

我把m3u8放在GCDWebServer上播放,当我用户WIFI没问题。但是使用4G,就会出现这个问题

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:0)

您需要在代码中展开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
}

答案 1 :(得分:0)

我已经解决了这个问题。当我使用4 g时,访问 dataServer!ServerURL nil 。我的解决方案是给它一个本地IP

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