#swift
#swift
Вопрос:
У меня есть протокол с дженериками:
protocol DataService {
associatedtype T
var getData: ((T) -> Void)? { get set }
}
Который я пытаюсь использовать в качестве параметра в инициализаторе:
class MyProvider {
var service: DataService
init(service: DataService) {
self.service = service
}
}
Тем не менее, я продолжаю получать:
Protocol 'DataService' can only be used as a generic constraint because it has Self or associated type requirements
Я пробовал приведенный ниже код, но он не сработал:
init<T: String>(service: DataService) {
self.service = service
}
Ответ №1:
Вместо этого вы можете создать универсальный класс:
class MyProvider<T> where T: DataService {
var service: T
init(service: T) {
self.service = service
}
}