许多下载导致Request已经与OperationQueue超时错误

时间:2017-11-25 23:45:49

标签: ios swift3 alamofire nsoperationqueue

我需要对服务器进行大约278次调用,它似乎适用于前50-100左右,但之后的所有调用都获得了Request已经超时的错误。我正在使用OperationQueue。任何人都可以看到我做错了什么,或者告诉我如何正确有效地做到这一点?我已经尝试添加waitUntilFinished,设置maxConcurrentOperationCount = 1并使用信号量,它只是冻结应用程序。如果有另一种方式,我很乐意听到它。

temp.capacity()

和RequestManager是使用AlamoFire和SwiftyJSON的调用

for ID in IDs {
     guard let url = URL(string: baseURL + APIurl.kURL + "/" + ID) else {
         return
     }

     if let headers = getHeaders() {
          let operationQueue: OperationQueue = OperationQueue()

          let operation1 = BlockOperation() {
                RequestManager().makeRequest(withURL: url, headers: headers) { (response, error) in
                    if error != nil {
                        print("error downloading \(String(describing: url))")
                        print("errorDesc  \(String(describing: error?.localizedDescription))")
                    }
                    guard let results = response else {
                        return
                    }
                    print("downloaded \(url)")
                    // save to core data
                }
          }
          operationQueue.addOperation(operation1)
        }
    }
}

0 个答案:

没有答案