我在Objective-C的類似下面的代碼:Objective-C的初始化(靜態方法)更多一次調用?
SubclassOfNSObject *GlobalVariableThatShouldNeverChange;
@implementation MyClass
+(void) initialize
{
[super initialize];
GlobalVariableThatShouldNeverChange = [[SubclassOfNSObject alloc] init];
// Change more stuff with GlobalVariableThatShouldNeverChange
}
@end
我有這個整個代碼中引用,因爲我使用它無處不在,通過我的代碼指針,這應該不會改變。 問題是,當我使用GHUnit
運行我的測試時,我遇到了奇怪的問題,GlobalVariableThatShouldNeverChange
的指針被改變了(例如,它正在重新初始化。我遇到了通過autorelease池釋放的變量問題, ,我有這個問題的解決辦法,但我想知道爲什麼
謝謝
好的,我忘了'self == Superclass',謝謝!你必須有'[超初始化]'嗎? – 2010-10-11 21:57:31
這很有趣,我不知道。這也意味着一個超類可以在運行時真正發現它有哪些子類。 – fishinear 2012-10-18 15:51:08