在使用Swift 3.3创建的应用程序中,我具有以下类:
class A {
func A() {
}
}
现在,我需要使用静态函数和调用此静态函数的非静态函数创建扩展。我有这个草稿:
extension A {
static func staticFunc() {
}
func f() {
A.staticFunc()
}
}
但是此代码不可编译。我该如何解决这个问题?我无法删除或重命名func A
。迁移到Swift 4.1不能解决问题。
答案 0 :(得分:1)
如果无法重命名该功能,则(本地)类型别名 可以定义为解决方法:
extension A {
typealias AliasA = A
static func staticFunc() { }
func f() {
AliasA.staticFunc()
}
}
答案 1 :(得分:0)
type(of: self).staticFunc()
应该可以工作。 type(of: self)
接受自身的类型并返回它。