比方说我在操场上偷了这段代码
import UIKit
internal final class TestClass {
internal final var funcPointer: () -> Void
init() {
self.funcPointer = self.func1() //Cannot assign value of type '()' to type '() -> Void'
}
internal final func func1() {
print("func1 is called!")
}
}
var testClass: TestClass = TestClass()
testClass.funcPointer()
为什么我在init()方法中收到显示的错误消息,以及如何正确初始化函数指针?
答案 0 :(得分:2)
要将闭包分配给属性,必须删除括号
self.funcPointer = self.func1
后续错误
在初始化所有存储的属性之前,在方法调用“ func1”中使用的self
可以通过声明funcPointer
隐式未包装的可选内容来解决
internal final var funcPointer: (() -> Void)!