首页 > 解决方案 > UIPickerView didSelectRow 之后的空变量

问题描述

我是斯威夫特的新手。

选择行后,我尝试从 WebAPI 读取一些 JSON 数据。除了一件事,一切都很好。我不知道为什么变量DaneSkladu_array在部分之外是空的URLSession(最后打印)。你能告诉我我做错了什么吗?

func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
    
    let WybranySklad = NrExact_array[row].prefix(6)
    lbl_NumerSkladu.text = String(WybranySklad)
    
    //self.customerPV.reloadAllComponents()
    let url = URL(string: "https://...")
    URLSession.shared.dataTask(with: url!) { (data, response, error) in
        guard let data = data else {return}
        
        do {
            let json = try JSONDecoder().decode([CustomerData].self, from: data)
            for klient in json{
                self.DaneSkladu_array.append(klient.KrotkaNazwa)
                if(klient.Nr_Exact == String(WybranySklad))
                {
                    
                }
            }
        } catch let jsonError {
            print ("Blad json: ", jsonError)
        }
     
    }.resume()

    print(self.DaneSkladu_array.count)
}

标签: swiftuipickerview

解决方案


let json = try JSONDecoder().decode([CustomerData].self, from: data)
        for klient in json{
            self.DaneSkladu_array.append(klient.KrotkaNazwa)
            // print(self.DaneSkladu_array.count) // place print statement here if you want to see the number of items after every new client inserted
        }
        print(self.DaneSkladu_array.count) // Print just the total amound of clients after inserting them all
  ...

推荐阅读