类的静态成员变量,为什么这样使用报错
import Foundation
print("Hello, World!")
public class wechat: NSObject{
static var staticSelf:wechat?
var a:Int = 1;
override init() {
super.init()
wechat.staticSelf = self
}
public func loginSucc( ) -> Void {
//error
print(wechat.staticSelf.a);
//ok
if let controller = wechat.staticSelf {
print(controller.a);
}
return
}
}
为什么error那部分编译错误,下面的ok
...全文
相关推荐
C++静态成员函数不能调用非静态成员变量(详解)
本文将深入探讨为什么C++的静态成员函数不能调用非静态成员变量,并通过示例进行解释。首先,我们需要理解静态成员的概念。静态成员属于类本身,而不是类的任何特定实例。
C++静态成员初始化[源码]
理解这一点对于正确使用静态成员变量至关重要,尤其是在涉及到它们的初始化时。首先,必须了解为什么静态成员变量不能在类内直接初始化。根本原因在于静态成员变量与普通成员变量在内存中的存储机制不同。
静态方法能否直接访问非静态成员变量?
如果试图在静态方法中直接访问非静态成员变量,编译器将会报错,指出无法找到对应的实例变量。
浅谈const变量赋值报错分析
所以,解决这个问题的方法有两种:一是使用构造函数的初始化列表赋值;二是将`const`关键字前加上`static`,使变量成为静态成员,这样它会在类的第一次实例化时自动初始化。
Java 成员变量和局部变量
**静态与非静态**: 静态成员变量属于类,而非实例。这意味着所有类的实例共享同一份静态变量。非静态成员变量则是每个实例独有的。4.


