【发布时间】:2018-12-26 10:07:36
【问题描述】:
在这里,我声明了 myArray。
class AcikIlanlarViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
var myArray: [String] = []
这里,我调用了修改数组的函数loadPage。
override func viewDidLoad() {
loadPage()
//when printed here myArray is nil
...
func loadPage() {
...
Alamofire.request(url, method: .get, parameters: parameters, encoding: JSONEncoding.default)
.validate { request, response, data in
...
let databases = try JSONDecoder().decode(responseData.self,from: json)
...
for i in 0...databases.orders.count-1 {
myArray.append(databases.orders[i].header!)
}
// when printed here I see the append has worked and myArray is not empty
}
如 cmets 中所述,在 viewDidLoad 中,我调用 loadPage,将某些内容附加到 myArray。就在追加之后,我可以看到追加的项目。然而,在 viewDidLoad 中,就在调用 loadPage 之后,myArray 变成了空的。为什么没有保存?
【问题讨论】:
-
func loadPage()是在进行异步调用吗? -
你忘了你的
super.viewDidLoad() -
发布 loadPage 完整代码......
-
@Larme 我不是故意这样做的。是默认的吗?我应该如何预防?我假设代码像 C 代码一样流动。如果这是问题,Alamofire 有一个获取请求并解析其中的 json。
-
您是否调用任何获取订单的网络服务???