ios - 使用 JSON 数据在标签上设置文本

标签 ios json swift parsing alamofire

}

大家好,我在设置标签值时遇到问题。标签应显示 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/

相关文章:

c++ - 强制将特定文件编译为 Objective-C/文件类型,但将整个项目编译为 Objective-C++

objective-c - iOS:适用于 iPad 的 MFMessageComposeViewController

c# - 如何在 RestSharp 中反序列化 JSON?

ios - 动态缩放 UIButton 中的字体

ios - 使用 CAGradientLayer 作为后备存储在 UIView 上画线

ios - UIViewController 的 View 未通过 viewWillAppear() 调整大小

iphone - 如何处理大 JSON 响应

javascript - 来自 php 的 JSON 解码信息

Swift 泛型函数不起作用

ios - 我的 View 边界开始处的空间