2
我在尝试确认Objective-C中的静态变量初始化是否与C++中的相同。特别是在调用main()之前,静态变量是否有被实例化或创建的可能性?静态变量的初始化顺序
我在尝试确认Objective-C中的静态变量初始化是否与C++中的相同。特别是在调用main()之前,静态变量是否有被实例化或创建的可能性?静态变量的初始化顺序
在Objective-C中没有实例化静态变量的概念。例如
// file level
NSMutableArray* foo = [[NSMutableArray alloc] init];
是不允许的。它与C中的一样:只能用常量初始化静态变量。对于Objective-C对象,这意味着nil
或文字字符串。
在Objective-C++中,你可以这样做,它们在main()
之前被调用。它只是遵循C++的Objective-C++规则的一部分。
如果要初始化与Objective-C中的类关联的对象,请使用+initialize
或+load
。看到这个nice blog article。