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



我们将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

最新更新