Я пытаюсь использовать Моя сеть в моем проекте.Я использую этот пример .В качестве примера делается запрос на подключение к серверу в контроллере представления в строке 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 :
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: @escaping (Moya.ProgressResponse) -> Void,
progressCompletion progressCompletionClosure: @escaping (Moya.Completion) -> Void)
{
provider.request(.getUsers(amount: amount, gender: gender),
callbackQueue: DispatchQueue.main,
progress: progressClosure,
completion: progressCompletionClosure)
}
Ошибка отображения:
Невозможно преобразовать значение типа '((Result) -> Void) -> Void' в ожидаемый тип аргумента 'Completion' (aka '(Result)) -> () ')
Я думаю, что пишу свою функцию getUsers неправильно.Я испортил это.Я слаб в замыканиях.
Пожалуйста, помогите.
Исходный код функции запроса из сетевой библиотеки Moya :
/// Designated request-making method.
Returns a `Cancellable` token to cancel the request later.
@discardableResult
open func request(_ target: Target,
callbackQueue: DispatchQueue? = .none,
progress: ProgressBlock? = .none,
completion: @escaping Completion) -> Cancellable {
let callbackQueue = callbackQueue ?? self.callbackQueue
return requestNormal(target, callbackQueue: callbackQueue, progress: progress, completion: completion)
}