我正在尝试UIPickerView
使用来自 API 的响应来填充一个,我可以使用基本的 JSON 响应成功地做到这一点,但我真的在努力解决下面的示例,其中 JSON 将值作为数组返回。
下面的代码来自 Playground 并已简化为仅显示相关代码,我相信如果我可以使用正确格式的数组创建一个变量,那么我可以使用它来填充UIPickerView
但我已经包含了UIPickerView
代码以防我以错误的方式解决这个问题。
我已经从这个论坛和其他论坛搜索并尝试调整各种示例,但由于某种原因,我无法让它工作,我是 Swift 新手,所以我处于学习曲线上!
我得到的最接近的是account(data: ["account1", "account2", "account3"])
,但我需要得到["account1", "account2", "account3"]
我希望有人可以提供帮助,希望不要对这个问题投反对票。
import UIKit
let json = """
{
"returnResult":1,
"data":["account1", "account2", "account3"]
}
"""
struct account: Codable {
var data: [String]
}
let accounts: account = try JSONDecoder().decode(account.self, from:json.data(using: .utf8)!)
print(accounts)
/*
RESULT RETURNED
account(data: ["account1", "account2", "account3"])
RESULT REQUIRED
["account1", "account2", "account3"]
PICKERVIEW CODE FROM WORKING VIEW
// picker view methods
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return accs.count
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> account? {
return accs[row]
}
// delegate method
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
let selectedDriver = accs[row]
displayLbl.text = selectedDriver
}
*/