Использовать исходную переменную класса в расширении, соответствующем протоколу
У меня есть ситуация, когда я хочу иметь возможность использовать существующее поле из класса, чтобы удовлетворить расширение класса, который определяет протокол. Что-то вроде этого:
class SomeThing {
var foo: String
}
protocol MyProtocol {
var foo: String { get }
func someOtherMethod()
}
extension SomeThing: MyProtocol {
func someOtherMethod() {
}
}
Но компилятор выбрасывает ошибки в файл, который определяет расширение, что SomeThing
не полностью соответствует протоколу. Есть ли способ заставить эту работу так, чтобы расширение просто захватывало значение исходного объекта?