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。