swift - 如何用数据更新这个变量

标签 swift

<分区>

新程序员来了!我正在处理网络请求,下面是我的代码片段。完成网络请求后,我想将请求中的值存储到变量中。但是,当在 if let 语句之外调用变量时,它不会更新。本质上,if let 语句内的 print 语句打印我要查找的值,但 if let 语句外的 print 语句打印我为该变量设置的默认值。变量是全局的。我需要在我的代码中的其他地方使用那个更新的变量,有什么想法吗?

        if let data = data {
            self.nameLabel.text = data.name
            person = data.name
            print(person)
        }
        print(person)

最佳答案

首先,您没有显示完整的代码,所以我猜您需要主队列首先更新您的 UILabel,如下面的代码所示:

DispatchQueue.main.async {
    self.nameLabel.text = data.name
}

下一步是如果你想在你的请求完成并且 UILabel 更新后访问其他地方的值,那么你可以通过这种方式从中获取值:

let value = self.nameLabel.text!

如果你想在请求完成后访问该值,那么你可以使用闭包和 HERE你可以检查它的例子。

关于swift - 如何用数据更新这个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55036432/

相关文章:

ios - 多语言错误

arrays - 如何获取具有特定索引的字符串 - swift

ios - Swift - 计时器不会停止

ios - 将代码中的文本分配给 UILabel! swift 2.2

ios - 在表格 View 单元格 Swift 4 上显示文件上传进度

ios - String 到 NSDate 反之亦然,然后到 UILabel

swift - RealityKit – 如何使实体及其 PBR Material 透明?

xcode - 动态更改标签栏背景颜色

scala - 如何构建客户端直接文件上传到 Play Framework (Scala)

swift - 在 Swift 中枚举类成员