Swift - 无法在`newView`中分配给`delegate`

时间:2015-04-06 16:11:00

标签: ios swift delegates

我正在使用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()
    }
}

感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

您使用delegate声明了let属性。因此,它只能在构造函数中分配。将其更改为var delegate,它应该可以正常工作。