我们将NSURL变量定义为
var audioURL_iPOD: NSURL?
在代码的一部分中,我们使用获取歌曲url
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是否为零。
使用可选绑定检查nil
:
if let absStr = audioURL_iPOD?.absoluteString {
// do something with absStr being NOT nil
} else {
// do something with absStr being nil
}
您也可以进行
guard let safeAudioURLiPod = audioItem.valueForProperty(MPMediaItemPropertyAssetURL) as? NSURL else {
/* exit scope by returning or throwing */
}
然后继续使用safeAudioURLiPod,就好像它不是可选的一样
示例:没有可选链的safeAudioURLiPod.absoluteString