2017-01-15 128 views
0

我有以下的NSArray:NSArray的填充uiPickerView

rollupList = 
[ 
    {"id":"1","rollup":"Acme Servicing","o_offered":"9780"}, 
    {"id":"2","rollup":"Acme Sales","o_offered":"4512"}, 
    ... 
] 

我試圖提取所有「彙總」到一個UIPickerView沒有任何成功顯示它們。

我能當我進入指數

let rowLOALogs: NSDictionary = self.rollupList[0] as! NSDictionary 
print((rowLOALogs["rollup"] as? String)!) //result: Acme Servicing 

獲得「彙總」的價值,但填充uiPickerView當我收到各種錯誤:

func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { 
    return self.rollupList[row] 
    //or return self.rollupList[row].rollup 
    //or return return (self.kpiData[row] as AnyObject).rollup 
} 

我我一直在尋找和測試由SO提供的不同解決方案,但我似乎無法使其發揮作用。

任何幫助,將不勝感激

回答

1

您需要從您要打印從數組rolluptitleForRow方法同樣的方式返回String。所以它應該是這樣的。

func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { 
    let rowLOALogs = self.rollupList[row] as! NSDictionary 
    return rowLOALogs["rollup"] as? String 
} 

注:在斯威夫特,而不是使用NSArrayNSDictionary你需要使用雨燕的本地ArrayDictionary,這將使事情變得更容易理解,即使你使用自定義類對象的數組或結構,然後它可以很容易地做你想做的事情。