Спасибо за подробный ответ @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 или есть какая-то причина, по которой это имеет смысл?

Ответы на вопрос(1)

Ваш ответ на вопрос