【问题标题】:Class variables in SwiftSwift 中的类变量
【发布时间】:2014-11-18 20:00:35
【问题描述】:

我想创建一个 Swift 类来存储一些数据,所以我想使用类变量,因为我知道 Java 中的静态变量。所以我写了这段代码:

class myClass {
    class var myVar:Int = 0
}

但正如当时的警告所说,此功能尚不支持。所以我想问是否有办法以一种好的方式做到这一点。我知道这有点使用计算属性,但实际上这不是我真正想要的。 当有人帮助我时,我真的很高兴:]

【问题讨论】:

  • 改用struct。结构体支持静态变量
  • 阅读this answer - 略有不同的问题,但相关的答案
  • @Antonio 感谢我之前没有看到的链接 - 但是当支持类变量时,我可以使用它们还是应该改用结构?
  • 结构的使用只是该限制的一种解决方法——一旦类(静态)属性可用,最好使用它们。但谁知道什么时候会发生……

标签: class swift xcode6


【解决方案1】:

您的两个选择是使用真正的全局变量:

var myVar: Int = 0

或在结构中使用静态变量:

struct MyStruct {
    static var myVar:Int = 0
}

其中任何一个都将具有您的项目/模块的全局范围。

(请注意,类型名称应大写:MyType,而不是myType。)

【讨论】:

  • 感谢您的回答 - 但我可以在类变量受支持时使用它们,还是应该更好地使用结构?附言我实际上知道类名,但我只是在这里写下来,并没有过多考虑名称 LOL
  • 别担心!老实说应该没有区别 - classstructinstances 是不同的,因为类实例是引用类型,结构实例是值类型,但如果你只是使用类型作为静态变量的存储库,无论哪种方式都无关紧要。
猜你喜欢
  • 2016-06-26
  • 1970-01-01
  • 2020-04-21
  • 2015-10-05
  • 2014-08-11
  • 2015-12-27
  • 1970-01-01
  • 2015-06-20
相关资源
最近更新 更多