2017-06-22 11 views
0

1つのViewControllerでは、3つのAlamofire APIコールがあります... 3つのAPI呼び出しが完了したら、プログレッシブビューの進捗を100%に設定しますか?迅速な複数のAlamofireコールのプログレッシブビューの設定

PS:また、誰かがAlamofire APIコールを1つだけ行う方法を教えてもらえますか?

ありがとうございます。 Alamofire

let strURL:String = "https://xxxx" 
    let parameters: Parameters = ["keyword": "current_timestamp"] 

    Alamofire.request(strURL, method: .post, parameters: parameters, encoding: URLEncoding.default).responseJSON { (response) in 
     print(response.data!) 
        print(response.result) 

        if let JSON = response.result.value { 
         print("JSON: \(JSON)") 
        } 
    } 
APIの進捗状況に関するステータスを与えるための進捗ブロックを提供

答えて

-1

の作業方法、あなたはあなたの進行状況を表示するためにこれを使用することができます要求したり、単一のAPIについては、以下のようなレスポンス、

Alamofire.request("url", method: "httpMethod", parameters: "parameter", encoding: JSONEncoding.default, headers: "headers").downloadProgress(closure: { (progress) in 

    // Progress block called frequently during the lifecycle of api. 
    let fractionCompletedINpercentage = progress?.fractionCompleted * 100 

    }).validate().responseData(completionHandler: { (response) in 

     if response.result.isSuccess { 
      // Download success 
     } else if response.result.isFailure { 
      // Download failed 
     } 

    }) 

複数のAPIを処理する場合は、各APIにBoolを使用し、すべてのAPIの進行状況の最小または平均を取って進捗を表示できます。

おかげ

+0

ニースの回答ですが、彼の質問には関係ありません。彼はシングルAPIの進捗状況を尋ねました。 –

0

Alamofireを使用する

0

ダウンロードの進捗状況は、APIレスポンスをgzip圧縮されているか、Content-Lengthヘッダがない場合、それはおそらく動作しないと述べた

let utilityQueue = DispatchQueue.global(qos: .utility) 

Alamofire.download("https://httpbin.org/image/png") 
.downloadProgress(queue: utilityQueue) { progress in 
    print("Download Progress: \(progress.fractionCompleted)") 
} 
.responseData { response in 
    if let data = response.result.value { 
     let image = UIImage(data: data) 
    } 
} 

Alamofireのdocで利用できる権利がありますセット。

関連する問題