我正在使用Swift为我创建的自定义类实现委托。但是,在尝试将委托设置为self时,我收到一条错误消息,指出"无法分配给委托'在' newView'。我在这里错过了什么吗?
在我的视图控制器中:
class ViewController: UIViewController, MyDelegate...
var newView = MyClass(frame: CGRectMake(pointX, pointY, 80, 80))
newView.delegate = self
func sayHi() {
print("Hi");
}
在我的自定义课程中:
protocol MyDelegate {
func sayHi()
}
class MyClass: UIView {
let delegate : MyDelegate?
func someMethod() {
delegate?.sayHi()
}
}
感谢您的帮助!
答案 0 :(得分:3)
您使用delegate
声明了let
属性。因此,它只能在构造函数中分配。将其更改为var delegate
,它应该可以正常工作。