я определяю класс:Swift: Override метод объекта
class Person {
func speak(phrase: String) {
NSLog("\(phrase)")
}
}
Предположим, что я хочу, чтобы изменить поведение метода speak
. В java я бы отказался от этого метода:
Person p = new Person() {
@Override
public void speak(String phrase) {
// Do something different
}
};
Как я могу переопределить метод в Swift? Я попытался следующие без толку:
let person = Person()
person.speak = { (String) ->() in
// Do something different
}
Ошибка: Cannot assign to 'speak' in 'person'
Я знаю, что я мог бы установить переменную, чтобы изменить поведение или подкласс Person, но я имею в виду другой случай, когда использование что-то вроде это необходимо. Использование этого примера было легче объяснить.
: включены функции свойств для подражания желаемому. – mxcl