Я также наткнулся на этот вопрос, однако нет окончательного ответа
Проблема: Я хотел бы переопределить свойство в подклассе.
Позвольте мне проиллюстрировать проблему с примером:
У меня есть класс под названием A
и его подкласс, называемый B
.
Класс A
class A {
var someStoredProperty : Int?
}
Класс B
class B : A{
override var someStoredProperty : Int?{
willSet{
//add to superclass setter
someStoredProperty = newValue! + 10
}
}
}
Как только я попытаюсь установить унаследованное свойство B
var b = B()
b.someStoredValue = 10 // Ambiguous use of someStoredProperty
компилятор говорит мне
Ambiguous use of someStoredProperty
Почему?
Обновление
class TableViewRow{
typealias ClickAction = (tableView:UITableView, indexPath:NSIndexPath) -> Void
var clickAction : ClickAction?
}
class SwitchTableViewRow: TableViewRow {
override var clickAction : ClickAction? {
didSet{
//override setter
}
}
}
Использование:
var switchRow = SwitchTableViewRow()
switchRow.clickAction = {
//^
//|
//|
//ambiguous use of clickAction
[unowned self, unowned switchRow] (tableView: UITableView, indexPath: NSIndexPath) in
//do something
}