Axe*_*min 15 swift swift-protocols
我想在我的类中嵌套一个协议来实现委托模式,如下所示:
class MyViewController : UIViewController {
protocol Delegate {
func eventHappened()
}
var delegate:MyViewController.Delegate?
private func myFunc() {
delegate?.eventHappened()
}
}
Run Code Online (Sandbox Code Playgroud)
但是编译器不会允许它:
声明仅在文件范围内有效
我可以通过MyViewControllerDelegate
在类范围之外声明来轻松地使它工作.
我的问题是为什么会有这样的限制?
小智 6
这是我的工作:
protocol MyViewControllerDelegate : class {
func eventHappened()
}
class MyViewController : UIViewController {
typealias Delegate = MyViewControllerDelegate
weak var delegate: Delegate?
private func myFunc() {
delegate?.eventHappened()
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6904 次 |
最近记录: |