【发布时间】:2019-08-26 10:43:19
【问题描述】:
我有一个名为 users 的结构实例,我通过闭包将 JSON 解析到这个实例中,但我发现我的编辑根本没有保存。因此,当我超出关闭范围时,我没有。有人知道如何捕捉闭包中的价值吗?
var users: [User]! = [User]()
override func viewDidLoad() {
super.viewDidLoad()
Alamofire.request(url2).responseJSON { response in
switch response.result {
case .success(let value):
guard let jsonArray = value as? [[String: Any]] else { return }
self.users = jsonArray.compactMap(User.init)
print(self.users!) // works
case .failure(let error):
print(error)
}
}
print(users!) // error because I had nil
}
【问题讨论】:
-
问题是responseJSON是异步调用的,也就是说底部的print语句在你的回调函数被调用之前就已经执行了
-
哇,你知道怎么解决吗?
标签: swift