好了,我们有了UIScrollView声明:

protocol UIScrollViewDelegate: NSObjectProtocol { ... }
class UIScrollView: UIView {
    ...
    weak var delegate: UIScrollViewDelegate?
    ...
}

然后是UITableViewdelegate的变体?
protocol UITableViewDelegate: NSObjectProtocol, UIScrollViewDelegate { ... }
class UITableView: UIScrollView {
    ...
    weak var delegate: UITableViewDelegate?
    ...
}

苹果是如何做到的?当我做我的
protocol MyScrollViewSubclassDelegate: NSObjectProtocol, UIScrollViewDelegate { ... }
class MyScrollViewSubclass: UIScrollView {
    ...
    weak var delegate: MyScrollViewSubclassDelegate?
    ...
}

我得到类型为“MyScrollViewSubclassDelegate?”的属性“delegate”?无法覆盖类型为'UIScrollViewDelegate?'的属性?

最佳答案

我偶然发现了这几次,发现的唯一解决方法是仅将我的媒体资源称为customDelegate或您喜欢的任何东西。

能够仅将其称为“委托(delegate)”确实很整洁,但是,嘿!

关于swift - 在Swift中委托(delegate)具有不同类型的属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31704480/

10-13 03:49