一尘不染

Swift类中的静态vs类函数/变量?

swift

以下代码在Swift 1.2中进行编译:

class myClass {
    static func myMethod1() {
    }
    class func myMethod2() {
    }
    static var myVar1 = ""
}

func doSomething() {
    myClass.myMethod1()
    myClass.myMethod2()
    myClass.myVar1 = "abc"
}

静态 函数和 函数有什么区别?我应该使用哪一个?何时使用?

如果我尝试定义另一个变量class var myVar2 = "",它说:

类中尚不支持的类存储属性;您是说“静态”吗?

如果支持此功能,则 静态 变量和 变量之间有什么区别(即,当两者都在类中定义时)?我应该使用哪一个?何时使用?

(Xcode 6.3)


阅读 187

收藏
2020-07-07

共1个答案

一尘不染

staticclass与类两者关联的方法,而不是一个类的实例。区别在于子类可以覆盖class方法。他们不能覆盖static方法。

class 属性在理论上将以相同的方式起作用(子类可以覆盖它们),但是在Swift中尚无法实现。

2020-07-07