NSArray填充uiPickerView

时间:2017-01-15 08:05:01

标签: swift3

我有以下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提供的不同解决方案,但我似乎无法让它工作。

任何帮助将不胜感激

1 个答案:

答案 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的原生NSArrayNSDictionary而不是ArrayDictionary即使您使用自定义类对象或结构数组,也可以使事情变得更容易理解,这样可以轻松地完成您想要的操作。