2016-05-17 63 views
1

我有一行代碼直到2個月前纔開始工作。現在我收到警告「模糊使用下標」。下標故障

這是我遇到麻煩的代碼行。最近有沒有更新Swift?

if let data = response.result.value { 

    let precinctNumberFromAPI = Int(data.valueForKeyPath("objects.metadata.Precinct")![0] as! String) 
.... 

} 

回答

3

隨着Swift 2.2編譯器對類型的要求更嚴格,如果存在歧義,許多以前推斷的類型不再被推斷。

就你而言,只需幫助編譯器通過安全解開和轉換來知道你的對象是什麼類型。

例子:

if let data = response.result.value, 
     array = data.valueForKeyPath("objects.metadata.Precinct") as? [String], 
     precinctNumberFromAPI = array.first { 
    // do stuff with precinctNumberFromAPI 
} 
+1

謝謝!我想最好是更嚴格的這樣的事情。 –