静态变量的初始化顺序

时间:2010-08-28 00:44:11

标签: objective-c iphone

我正在尝试确认Objective-C中的静态变量初始化是否与C ++相同。具体来说,静态变量是否有可能在调用main()之前实例化/创建?

1 个答案:

答案 0 :(得分:3)

在Objective-C中没有静态变量实例化的概念。 e.g。

// file level
NSMutableArray* foo = [[NSMutableArray alloc] init];

是不允许的。它与C中的相同:您只能使用常量初始化静态变量。对于Objective-C对象,这意味着nil或文字字符串。

在Objective-C ++中,您可以这样做,并在main()之前调用它们。它遵循C ++的Objective-C ++规则的一部分。

如果要在Objective-C中初始化与类关联的对象,请使用+initialize+load。请参阅此nice blog article

相关问题