#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>) {
}