arrays - 如何将字典加载到 UIPickerView

标签 arrays swift dictionary uipickerview

如何在 Swift 中将字典中的数据加载到 PickerView 中?

我有一个字典 String键(状态)和 Double值(税)和我想要做的是能够将键设置为 titleForRow的 UIPickerView 并显示所选 key 的值在textField .

// Ideal Dictionary
private var states:[String:Double] = ["Alabama":6.000, "Illinois":7.000, "Oregon":8.000, "Wisconsin":9.000]

我能够使用两个数组来执行上述操作,一个用于州,一个用于税收,但我拒绝认为从字典加载是不可能的。

这是我目前可以使用的,但使用了两个数组。

// Arrays
private var stateName = ["Alabama", "Illinois", "Oregon", "Wisconsin"]
private var stateTax = ["6.000", "7.000", "8.000", "9.000"]

func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
    return stateName.count
}
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
    inputTaxRate.text = stateTax[row]
}
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
    return stateName[row]
}

有什么改进上面代码的建议吗?

最佳答案

字典是无序的,所以最好使用数组。 您可以使用一组命名元组将您的数据保存在一个数组中:

let stateInfo:[(name: String, tax: Double)] = [("Alabama", 6.000), ("Illinois", 7.000), ("Oregon", 8.000), ("Wisconsin", 9.000)]

func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
    return stateInfo.count
}

func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
    inputTaxRate.text = stateInfo[row].tax
}

func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
    return stateInfo[row].name
}

关于arrays - 如何将字典加载到 UIPickerView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35670825/

相关文章:

python - 将列表字典展平为数据框

ios - 快速添加基于键的分组字典元素的值

c - C 中的 MPI INT 数组

php - 无法从 HTML 表单复选框获取值以插入 MySQL 数据库列

javascript - 重复数组在一定限度内上下移动

ios - 呈现 navigationController 时出错

objective-c - 桥接头有什么用?我们应该避免使用桥接头吗?

javascript - 遍历 JSON 和渲染表元素没有结果

swift - 迭代 API 的结果并知道它何时完成的最佳方法是什么?

c# - 为什么我的 Dictionary<string, string> 默认不区分大小写?