以下代码在Swift 1.2中编译:

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

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

static函数和class函数的区别是什么?我应该使用哪一种,何时使用?

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

类中尚未支持的类存储属性;你是说"静态"吗?

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

(代码6.3)

推荐答案

staticclass都将方法与类相关联,而不是与类的实例相关联.不同之处在于,子类可以覆盖class个方法;它们无法覆盖static个方法.

理论上,class个属性将以相同的方式运行(子类可以覆盖它们),但它们在Swift中还不可能实现.

Swift相关问答推荐

WWDC Swift并发会话中的厨房服务示例令人困惑

纹理资源加载问题(图像解码失败)

如何在SWIFT中使用DiscardingTaskGroup获得任务结果

为SwiftUI文本视图提供固定宽度,并仅在文本换行时使文本视图底部增大

在SWIFTUI&39;S视图修改器中使用等待关键字

可选,类似于自定义类型的初始化

与视图交互使工具栏&;标题消失

如何使用Swift宏和@Observable和@Environment?

Swift UI中视图上的值未更新

Xcode创建GitHub仓库,但未推送所有文件

为什么我在我的 Swift iOS 应用程序项目中收到 Xcode 中的错误消息无法识别的 Select 器发送到类?

如何修改下面的代码,使图像 Select 的顺序与使用快速并发的图像呈现的顺序相匹配?

如何在类中打印函数

在 macOS (Swift) 上获取 BSD 驱动器名称的最佳方法是什么?

Swift - 给定一个像 30 的 Int 如何将范围数乘以 7?

SwiftUI 4 列表初始化程序在 iOS 中不可用

What is "SwiftPM.SPMRepositoryError error 5"?

理解 Swift 2.2 Select 器语法 - #selector()

如何使用 Swift/iOS 为人类书写的笔画制作动画?

将if let与逻辑或运算符一起使用