J. *_*Doe 62 ios swift swift-playground swift4
我有一个扩展名:
public extension UIWindow {
override public func topMostController()->UIViewController? { ... }
}
Run Code Online (Sandbox Code Playgroud)
但是对于我,topMostController
我得到了下一个错误:
Declarations in extensions cannot override yet error
Run Code Online (Sandbox Code Playgroud)
它适用于Swift 3.1,但对于Swift 4,我得到了这个错误.怎么修好?他们在Swift 4中有什么变化?
Nik*_*iya 12
扩展可以为类型添加新功能,但它们不能覆盖现有功能.
扩展为现有的类,结构,枚举或协议类型添加新功能.这包括扩展您无法访问原始源代码的类型的能力(称为追溯建模).
Swift中的扩展可以:
您尝试执行的操作类似于此代码所执行的操作:
class MyClass: UIWindow {
func myFunc() {}
}
extension MyClass {
override func myFunc() {}
}
Run Code Online (Sandbox Code Playgroud)
注意:如果您想再override topMostController()
创建子类UIWindow
归档时间: |
|
查看次数: |
27153 次 |
最近记录: |