静态变量的初始化顺序
答
在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。