解包 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!ServerURL是nil.my解决方案是给它一个本地IP
if davServer?.serverURL == nil {
serverAddress = NSURL.init(string: "http://localhost/playts.m3u8")!
}else{
serverAddress = (davServer?.serverURL.URLByAppendingPathComponent(self.m3u8!))!
}
我把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!ServerURL是nil.my解决方案是给它一个本地IP
if davServer?.serverURL == nil {
serverAddress = NSURL.init(string: "http://localhost/playts.m3u8")!
}else{
serverAddress = (davServer?.serverURL.URLByAppendingPathComponent(self.m3u8!))!
}