2015-11-14 21 views
-1

我們定義了一個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是零或沒有。

+0

你是什麼意思「di d不工作「?即使網址爲「無」,塊是否也運行? – Arc676

+0

有時候是一個人太累了... – user3441734

回答

1

您檢查nil使用可選的結合:

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

_if let something = etc {} _是一種不尋常的東西,但無論什麼工作與我很好。謝謝。 – Hope

0

你也可以做

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

,然後繼續使用safeAudioURLiPod,如果它是不可選的

例子:safeAudioURLiPod.absoluteString沒有可選鏈

相關問題