Мой ПрогрессБлок возвращает 0.0 - PullRequest
0 голосов
/ 18 декабря 2018

Я пытаюсь использовать Моя сеть в моем проекте.Я использую этот пример .В качестве примера делается запрос на подключение к серверу в контроллере представления в строке 56, которая находится ниже, и использование методов обратного вызова в строке 72 и строке 78

func uploadGiphy() {
    provider.request(MultiTarget(Giphy.upload(gif: Giphy.animatedBirdData)),
                     callbackQueue: DispatchQueue.main,
                     progress: progressClosure,
                     completion: progressCompletionClosure)
}

Я хочу написать эту функцию в NetworkHelper.swift вместо моего контроллера представления , но используйте его методы обратного вызова (строка 72 и строка 78) в моем контроллере представления.

Поэтому я написал функцию в NetworkHelper :

    class NetworkHelper{

        static func getUsers(amount:Int=2, 
gender:Gender = .Male, 
success successCallback: @escaping ([UserModelMain]) -> Void, 
error errorCallback: @escaping (Swift.Error) -> Void, 
failure failureCallback: @escaping (Moya.MoyaError) -> Void, 
progress progressClosure: ProgressBlock?) {

            userProvider.request(.getUsers(amount: amount, gender: gender),
 callbackQueue: DispatchQueue.main, 
progress: progressClosure) { (result) in
                switch result
                {
                case .success(let response):
                    if response.statusCode >= 200 && response.statusCode <= 300 {
                        guard let getResponseObject = try? response.map(to: [UserModelMain.self])else{
                            let error = NSError(domain:"com.company.networkLayer", code:0, userInfo:[NSLocalizedDescriptionKey: "JSON Parsing Error"])
                            errorCallback(error)
                            return
                        }
                        successCallback(getResponseObject)
                    } else {
                        let error = NSError(domain:"com.company.networkLayer", code:0, userInfo:[NSLocalizedDescriptionKey: "Network Error"])
                        errorCallback(error)
                    }
                case .failure(let error):
                    // 3:
                    failureCallback(error)
                }
            }
        }
    }

В моем контроллере представления Я вызываю эту функцию:

func user(){

        UserAdapter.getUsers(amount: 200, gender: .Female, success: { (response) in

        }, error: { (error) in
            // show error from server
        }, failure: { (error) in
            // show Moya error
        }, progress: progressClosure)
    }

lazy var progressClosure: ProgressBlock = { response in
    print("Progress: \(response.progress)")
}

Но response.progress всегда 0.0 Пожалуйста, помогите.

Прогресс: 0,0 Прогресс: 0,0 Прогресс: 0,0 Прогресс: 0,0 Прогресс: 0,0

...