具有异步网络请求的Swift 2 For Loop在响应后继续循环

时间:2018-09-23 03:35:13

标签: ios swift asynchronous

我正在尝试发送数千个http请求,但是由于内存问题,我的应用程序崩溃了。 “由于内存问题而终止” 。因此,我想等待响应,然后继续循环以发送另一个请求。

for i in 0 ..< 10000 {

    Alamofire.request("https://httpbin.org/get", parameters: ["foo": "bar"]).responseJSON { response in
        print("Finished request \(i)")
        // Continue the looping
    }
}

1 个答案:

答案 0 :(得分:1)

您可以执行以下简单的递归。

func makeRequest(for index: Int) {
    guard index < 10000 else { return }
    Alamofire.request("https://httpbin.org/get", parameters: ["foo": "bar"]).responseJSON { [weak self] response in
        print("Finished request \(index)")
        self?.makeRequest(for: index + 1)
    }
}

然后从零开始或如下所示的任何索引,

self.makeRequest(for: 0)