Как вызвать функцию вместо реализации закрытия

#ios #swift

#iOS #swift

Вопрос:

У меня есть эта функция

 func performNetworkRequest(timeout: Int, completion: (Result<Response, Error>) -> Void) {
    // ....
} 
  

Я хочу иметь возможность вызывать performNetworkRequest без записи закрытия, но передавать функцию для выполнения логики там.

что-то вроде :

 func onNetwotkResponse(result: (Result<Response, Error>) -> Void) {
    
}

performNetworkRequest(timeout: 60, completion: onNetwotkResponse)
  

Как я могу этого добиться?
Спасибо

Ответ №1:

Тип закрытия является:

 (Result<Response, Error>) -> Void
  

что означает

Функция, которая принимает Result<Response, Error> и возвращает Void .

Это означает, что ваша onNetwotkResponse функция должна принимать Result<Response, Error> , а не (Result<Response, Error>) -> Void :

 func onNetwotkResponse(result: Result<Response, Error>) {
    
}