[英]Access static variable from non static method in Swift
我知道你不能从静态上下文中访问非静态类变量,但另一种方法呢? 我有以下代码:
class MyClass {
static var myArr = [String]()
func getArr() -> [String] {
return myArr
}
但是,当我尝试编译它时,我得到错误MyClass does not have a member named myArr
。 我认为静态变量对静态和非静态方法都是可见的,所以我不知道我哪里出错了。
我在使用Xcode 6.3运行OS X Yosemite的Macbook上。
您需要在变量之前包含类名。
class MyClass {
static var myArr = [String]()
func getArr() -> [String] {
return MyClass.myArr
}
}
在Swift3中,不推荐使用dynamicType。 你可以使用type(of :)
struct SomeData {
static let name = "TEST"
}
let data = SomeData()
let name = type(of:data).name
// it will print TEST
您只需要添加类名。
class MyClass {
static var myArr = [String]()
func getArr() -> [String] {
return MyClass.myArr
}
}
您可以通过两种不同的方式访问Array:
MyClass().getArr()
要么
MyClass.myArr
您还可以使用self.dynamicType
:
class MyClass {
static var myArr = [String]()
func getArr() -> [String] {
return self.dynamicType.myArr
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.