我们将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是否为零。
答案 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
没有可选链