小编And*_*tow的帖子

覆盖Swift中的超类委托

我正在开发一个包含两个UIViews的Swift(v1.2)项目.MyViewMyViewSubclass.

MyView有一个委托,我想在MyViewSubclass中覆盖作为一个子协议,类似于UITableViews有一个UITableViewDelegate,它也符合超级UIScrollViewDelegate.

我的第一个想法是覆盖超类属性,但这会导致编译器错误,因为子类不能覆盖具有不同类型的超类属性.

// Example throws a compiler error. Can't override property with different type

class MyView : UIView {
    weak var delegate : MyViewDelegate?
}

class MyViewSubclass : MyView {
    override weak var delegate : MyViewSubclassDelegate? // Compiler error
}

protocol MyViewDelegate {
   func someFunc ()
}

protocol MyViewSubclassDelegate : MyViewDelegate {
    //func someFunc () Edit: redefinition not necessary, thanks @Rob!
    func …
Run Code Online (Sandbox Code Playgroud)

inheritance delegates overriding ios swift

7
推荐指数
1
解决办法
3318
查看次数

标签 统计

delegates ×1

inheritance ×1

ios ×1

overriding ×1

swift ×1