swift - 如何调用具有与此类同名函数的类的静态方法?

标签 swift swift3 static swift4 extension-methods

在我使用 Swift 3.3 创建的应用程序中,我有以下类:

class A {

    func A() {

    }
}

现在我需要创建一个带有静态函数和调用此静态函数的非静态函数的扩展。我有这个草稿:

extension A {

    static func staticFunc() {

    }

    func f() {

        A.staticFunc()
    }
}

但是这段代码是不可编译的。我该如何解决这个问题?我无法删除或重命名 func A。迁移到 Swift 4.1 并不能解决问题。

最佳答案

如果无法重命名函数,则使用(本地)类型别名 可以定义为解决方法:

extension A {
    typealias AliasA = A

    static func staticFunc() { }

    func f() {
        AliasA.staticFunc()
    }
}

关于swift - 如何调用具有与此类同名函数的类的静态方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51524599/

相关文章:

Swift3 使用未解析的标识符 'Date'

php - 在 php 中扩展静态方法

swift - 为什么我的@lazy 属性会崩溃,但如果我将其设置为非惰性属性,它就可以正常工作?

ios - 如何将 GIF 图片从 url 写入文档目录

swift - 如何在 Swift 中附加 Protocol Buffer ?

swift - 在子任务的情况下不执行计时器

c - 未初始化的局部变量是静态的吗?

c++ - static constexpr 指向函数的指针,编译器之间的区别

ios - 在 iOS 中保存音频 After Effects

ios - 在 Xcode 7.2 中仅将 iPhone 应用程序转换为通用应用程序