新程序员在这里!我正在处理网络请求,下面是我的代码段。完成网络请求后,我想将请求中的值存储到变量中。但是,如果在if let语句之外调用该变量,则不会更新该变量。本质上,if let语句内部的print语句将打印我要查找的值,但是if let
语句外部的print语句将打印我为该变量设置的默认值。该变量是全局变量。我需要在代码的其他地方使用该更新的变量,有什么想法吗?
if let data = data {
self.nameLabel.text = data.name
person = data.name
print(person)
}
print(person)
答案 0 :(得分:3)
首先,您没有显示完整的代码,所以我猜您需要首先更新下面的UILabel
的主队列,如下代码所示:
DispatchQueue.main.async {
self.nameLabel.text = data.name
}
接下来的事情是,如果您希望在请求完成并UILabel
更新后访问其他地方的值,则可以通过这种方式从中获取值:
let value = self.nameLabel.text!
如果您希望在请求完成后访问该值,则可以使用闭包和HERE来检查它的示例。