2015-11-28 52 views
0

使用Xcode,由於在swift 2.0中接收到零而導致致命錯誤。下面聲明的常數是在應用程序崩潰,因爲mediaItem響應是零點:由於無法快速獲得致命錯誤

let url: NSURL? = NSURL(string: (self.mediaItem?[0].url)!) 

如何避免這個問題?

+0

不受任何措施迅速的專家,但我想你會發現本教程中的答案。 http://www.codingexplorer.com/the-guard-statement-in-swift-2/ – user3069232

回答

1

由於(self.mediaItem?[0].url)!發生了這次事故。如果self.mediaItem?[0].url返回nil值,則該語句會發生如下變化:(nil)!並導致應用程序崩潰。還需要處理數組超出範圍異常,如果mediaItems數組爲空,則可能發生這種情況。

你能解決這個問題,如:

if let mediaArray = self.mediaItem where mediaArray.count > 0 
{ 
    if let urlString = mediaArray[0].url 
    { 
    let url: NSURL? = NSURL(string: urlString) 
    } 
} 
+0

對不起Midhun,但錯誤仍然存​​在'數組索引超出範圍' – Edu

+0

@Edu:此問題是由於數組數爲零。請檢查我的更新回答 –

+0

感謝@Midhun,但爲避免此問題,請使用distinct操作符,如果'self.mediaItem?.count!= 0' – Edu