У меня есть вопрос о типе, связанном с протоколом swift.
protocol SomeProtocol {}
protocol TestAProtocol: SomeProtocol {}
protocol TestBProtocol: SomeProtocol {}
class TestA: TestAProtocol {}
class TestB: TestBProtocol {}
protocol Service {
associatedtype S: SomeProtocol
var service: S? { get }
}
class ServiceModule: Service {
var service: TestAProtocol?
}
этот код содержит ошибку, поскольку тип службы в ServiceModule - это протокол (TestAProtocol) (не конкретный тип).
class ServiceModule: Service {
var service: TestA?
}
или
class ServiceModule: Service {
var service: TestB?
}
все в порядке.
, но я хочу иметь переменную, соответствующую протоколу (например, TestAProtocol), которая соответствует специфицированному протоколу c (например, SomeProtocol).
вот так:
class ServiceModule: Service {
var service: TestAProtocol? // or var service: TestBProtocol?
}
возможно ли это?