无法将值存储在URLSession线程之外

时间:2019-05-07 20:00:14

标签: swift

我试图在URLSession中存储从解析的JSON文件中提取的String,以便更改函数主体中的标签文本,但未存储该值。

当我尝试打印该值时,它会打印,但是当我尝试访问它时,它是一个空字符串。我试图更改线程中的标签文本,但这是不允许的。

代码如下:

我的本​​地函数变量

        var jName = ""

无效的代码

 guard let url = URL(string: "URLPLACEHOLDER") else { return }

        let session = URLSession.shared

        session.dataTask(with: url) { (data, response, error) in
            if let response = response {
                print(response)
            }
            guard let data = data else { return }


            let res = try! JSONDecoder().decode([Jobs].self, from:data)

            if let v = res.first?.jobName { 
                print(v)
                jName = v
            }



            }.resume()

        self.currentPerson.text = jName + " is currently walking."

如前所述,v可以很好地打印(它应该具有值“ BOB”),但是当我将其分配给jName并尝试更改标签时,标签上仅显示" is currently walking."

0 个答案:

没有答案