}


大家好,我在为标签设置值时遇到问题。标签应显示我的JSON(链接-followers_url变量)中数组中元素的数量。我打电话给alamo,并使用该网址提出请求。当我在parseData()方法中打印值时,得到正确的结果。当我在configureView()viewDidLoad()中打印它时,我总是得到0。

设置标签文本也仅在parseData()方法内起作用。有什么想法可以使它工作吗?

最佳答案

Alamofire.request(url).validate().responseJSON { response in
            self.parseData(data: response.data!)
        }


以上请求在另一个后台线程上运行。
因此,当您调用函数callAlamo时,将在完成块中收到响应({response in)。因此,当您在调用Alamo之后调用print()时。尚未收到响应并调用打印,因此值不会更新。因此,请仅通过完成块对响应执行操作。
如果要设置标签写操作,请在完成块中的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

10-04 22:45
查看更多