Я пытаюсь переназначить действию новое значение "doo", но я получаю сообщение об ошибке "Невозможно присвоить значение типа '() -> ()" типу "(myClass) -> () -> ( ) '»
Как я могу это исправить?
class myClass {
var action = foo //function pointer
var actions = [foo, doo] //function pointer array
var i = 12
func foo() {
print("NOP: \(i)")
}
func doo() {
print("doo: \(i)")
}
func change()
{
action = actions[1] //this compiles
//Cannot assign value of type '() -> ()' to type '(myClass) -> () -> ()'
action = doo //doesn't compile :(
//... later:
action(self)() //call the function pointer
}
}