我有以下NSArray:
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提供的不同解决方案,但我似乎无法让它工作。
任何帮助将不胜感激
答案 0 :(得分:1)
您需要从String
方法返回titleForRow
,方法是从数组中打印rollup
。所以应该是这样的。
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
let rowLOALogs = self.rollupList[row] as! NSDictionary
return rowLOALogs["rollup"] as? String
}
注意:在Swift中,您需要使用Swift的原生NSArray
和NSDictionary
而不是Array
和Dictionary
即使您使用自定义类对象或结构数组,也可以使事情变得更容易理解,这样可以轻松地完成您想要的操作。