如何使用数据更新此变量 [关闭]

Posted

技术标签:

【中文标题】如何使用数据更新此变量 [关闭]【英文标题】:How do I update this variable with data [closed] 【发布时间】:2019-03-07 05:04:17 【问题描述】:

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

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

【问题讨论】:

您没有显示足够的上下文。您的 print 很可能在异步完成块之外。 还可以尝试用 print("(person) : person from inside") 替换一个 print,这样调试会更容易。 【参考方案1】:

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

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

接下来,如果您想在请求完成并更新UILabel 后在其他地方访问该值,那么您可以通过这种方式从中获取值:

let value = self.nameLabel.text!

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

【讨论】:

以上是关于如何使用数据更新此变量 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Windows 命令行永久更新 PATH 变量?

如何使用 AsyncTask 更新全局变量

如何使用 php 从多行表单更新 mysql 数据库 [关闭]

如何使用从子组件传递给组件的反应变量更新 redux 状态

Rails - 当用户单击提交按钮时如何更新表中的数据

新升级的火狐浏览器每次启动都弹窗提示更新,检查附加插件和此版本的兼容性,如何关闭?已关闭了自动更新