Вот код:
protocol A {
var a: Int { get set }
}
extension A {
var convenientAccessor: Int {
get { return a }
set { a = newValue }
}
}
class B: A {
var a: Int = 0
}
func acceptsB (instance: B) {
instance.a = 1 // This compiles
instance.convenientAccessor = 2 // This does not
}
Я вроде понимаю проблему здесь, но я действительно хотел бы получить ответ от кого-то, кто понимает его более глубоко, и, что более важно, обходной путь для моей проблемы, которыйчто я хочу обойти известные типы классов и иметь возможность использовать удобные средства доступа, не ограничиваясь тем, что я использую тип значения.В моем случае протоколы, определяющие эти удобные средства доступа, не должны быть привязаны к классу (они совершенно допустимы и полезны для типов значений), поэтому, хотя это технически обходной путь, для меня это неудовлетворительно.