在使用之前我们如何检查NSURL变量是否为零?

时间:2015-11-14 08:15:14

标签: swift2 nsurl

我们将NSURL变量定义为

var audioURL_iPOD: NSURL?

在代码的一部分中,我们使用

获取歌曲网址
    let audioItem    = selectedAudio.objectAtIndex(0)
     audioURL_iPOD   = audioItem.valueForProperty(MPMediaItemPropertyAssetURL) as? NSURL

在我们代码的其他地方,我们必须检查audioURL_iPOD是否为零。但是

       if audioURL_iPOD?.absoluteString == nil {  do something    }

没有像往常一样工作并返回

      fatal error: unexpectedly found nil while unwrapping an Optional value

所以我们必须做一些更复杂的事情,除非我们能够找到一种方法来检查audioURL_iPOD是否为零。

2 个答案:

答案 0 :(得分:1)

使用可选绑定检查nil

if let absStr = audioURL_iPOD?.absoluteString {  
 // do something with absStr being NOT nil
} else {
 // do something with absStr being nil
}

答案 1 :(得分:0)

你也可以

guard let safeAudioURLiPod = audioItem.valueForProperty(MPMediaItemPropertyAssetURL) as? NSURL else { 
    /* exit scope by returning or throwing */ 
}

然后继续使用safeAudioURLiPod,好像它不是可选的

示例:safeAudioURLiPod.absoluteString没有可选链