Спасибо за подробный ответ @Hamish. Я уже делал то, что вы предложили (оболочка вычисляемого свойства), но я согласен, что добавление другого свойства нежелательно.
у следующий код выдает ошибку?
protocol ProtocolA {
var someProperty: ProtocolB { get }
}
protocol ProtocolB {}
class ConformsToB: ProtocolB {}
class SomeClass: ProtocolA { // Type 'SomeClass' does not conform to protocol 'ProtocolA'
var someProperty: ConformsToB
init(someProperty: ConformsToB) {
self.someProperty = someProperty
}
}
Ответ на этот похожий вопрос имеет смысл. Однако в моем примере это свойство только для получения. Почему это не должно работать? Это недостаток Swift или есть какая-то причина, по которой это имеет смысл?