}
大家好,我在设置标签值时遇到问题。标签应显示 JSON 内数组中的元素数量(链接 - followers_url
变量)。我调用 alamo 并使用该 url 发出请求。当我在 parseData()
方法中打印值时,我得到了正确的结果。当我在 configureView()
和 viewDidLoad()
中打印它时,我总是得到 0。
设置标签文本也仅在 parseData()
方法中有效。有什么想法可以让它发挥作用吗?
最佳答案
Alamofire.request(url).validate().responseJSON { response in
self.parseData(data: response.data!)
}
上述请求在另一个后台线程上运行。 因此,当您调用函数 callAlamo 时,将在完成 block 中收到响应({response in)。所以当你在 callAlamo 之后调用 print() 时。尚未收到响应并调用 print,因此值未更新。因此请仅通过完成 block 对响应执行操作。 如果要设置标签,请在完成 block 中的 self.parseData 之后设置标签代码({response in)。确保将其设置在主队列中,因为 UI 操作只需要在主队列上执行
以下问题将有助于在主线程上设置标签。
In Swift how to call method with parameters on GCD main thread?
您需要了解多线程概念才能更好地理解这一点。关注此https://medium.com/@gabriel_lewis/threading-in-swift-simply-explained-5c8dd680b9b2
关于ios - 使用 JSON 数据在标签上设置文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53426291/