Я пытаюсь заполнить UIPickerView
, используя ответ от API, я могу успешно сделать это с базовыми ответами JSON, но я действительно борюсь с примером ниже, где JSON возвращает значение в виде массива.
Приведенный ниже код взят с игровой площадки и был упрощен, чтобы показывать только соответствующий код. Я уверен, что если я смогу создать переменную с массивом в правильном формате, то я смогу использовать ее для заполнения 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
}
*/