Alamofire 요청 프로세스를 수행하는 네트워크 클래스에 아래 기능이 있습니다. 내 모델 클래스에서이 함수를 호출 중이며 Alamofire가 요청을 완료하면 모델 클래스에 알리는 델리게이트 함수를 호출합니다. 내 문제는 내가이 Alamofire 함수를 여러 번 호출하고 모두 모델 클래스에 알리기 전에 끝내야한다는 것입니다. 이제 나는 그것을 아주 가짜로 처리한다. 내가 검색 할 때, DispatchGroup 사용할 수 있지만 그것을 구현할 방법을 알아낼 수 없습니다. 고맙습니다.여러 Alamofire 요청이 완료 될 때까지 대기
모델 클래스
@objc func refresh_fiks(){
let network = Network()
network.delegate = self
self.teams = [[]]
network.getRequest(req: 1)
network.getRequest(req: 2)
}
요청 기능 : 나는 당신의 코드에서 몇 가지 변경 한
func response(){
print(response_json.count)
if(response_json.count == path){
self.delegate?.sendJson(response_json)
}
}
func getRequest(req: Int) {
path = req
let rot = Router(method: .get, path: req, parameters: nil)
Alamofire.request(rot)
.response { response in
print(response.request?.url! as Any)
// check for errors
guard response.error == nil else {
// got an error in getting the data, need to handle it
print(response.error!)
let errorJson: JSON = [ "Error" : "Can't get the data!"]
self.response_json.append(errorJson)
self.response()
return
}
// make sure we got some JSON since that's what we expect
guard (response.data?.base64EncodedString()) != nil else {
print("Error: \(String(describing: response.error))")
let errorJson: JSON = [ "Error" : "Can't get the data!"]
self.response_json.append(errorJson)
self.response()
return
}
guard response.response?.statusCode == 200 else{
let errorJson: JSON = [ "Error" : "Can't get the data!"]
self.response_json.append(errorJson)
self.response()
return
}
let json = JSON(data: response.data!)
// get and print the title
if json != nil{
self.response_json.append(json)
self.response()
} else {
let errorJson: JSON = [ "Error" : "Can't get the data!"]
self.response_json.append(errorJson)
self.response()
return
}
}
}
그것은했다. 너는 나의 하루를 구했다! 고맙습니다. – eonr