这里讨论的应用程序首先从AppDelegate
及其UIWindow
直接注入一个类:
public var window: UIWindow? {
get { return nil }
set {
guard _window == nil else { return }
_window = newValue
_window.makeKeyAndVisible()
start()
}
}
上面的代码存在于Cocoapod中,而start()
函数的想法是它在任何代码/应用程序实现所述Cocoapod时得到一个定制的实现:
extension TheStartingClass {
func start () {
// do whatever needs doing...
}
}
"TheStartingClass"
是一个TheStartingClassProtocol
的类,两者都在Cocoapod中。是否:
启动功能在协议和类中;或
启动功能在协议和协议扩展中;或
启动功能仅在协议扩展名
在Cocoapod之外的extension TheStartingClass
重新实施时,重新实施会被忽略,我猜测是因为与the way protocols dispatch methods有关。
如何更改此代码,以便实际调用func start ()
中的extension TheStartingClass
?
感谢您的阅读。