У меня есть протоколы с универсальными типами. правильный код ниже
Я получаю сообщение об ошибке: «Общий параметр« T »не может быть выведен»
ошибка общего типа
что мне не хватает?
архитектура VIPER, поэтому у меня есть View, Presenter, Interactor ...
Protocols.swift
protocol OffersViewProtocol {
var presenter: OffersPresenterProtocol? { get set }
func setup()
func displayResults()
}
protocol OffersPresenterProtocol {
var interactor: OffersInteractorProtocol? { get set }
var router: OffersRouterProtocol? { get set }
func showResults<T: Codable>(for service: APIService,_ completion: @escaping ResultsHandler<T>)
}
protocol OffersInteractorProtocol {
func getResults<T: Codable>(for service: APIService,_ completion: @escaping ResultsHandler<T>)
}
Interactor.swift
class OffersInteractor: OffersInteractorProtocol {
let dataManager = DataManagerService()
func getResults<Offer>(for service: APIService, _ completion: @escaping ([Offer]?, ErrorHandler?) -> Void) {
dataManager.get(for: service) { results in
}
}
}
Presenter.swift
class OffersPresenter: OffersPresenterProtocol {
var interactor: OffersInteractorProtocol?
var router: OffersRouterProtocol?
func showResults<Offer>(for service: APIService, _ completion: @escaping ([Offer]?, ErrorHandler?) -> Void) {
interactor?.getResults(for: service, { (results, error) in
})
}
}