我在Objective-C中有类似于以下代码:
SubclassOfNSObject *GlobalVariableThatShouldNeverChange;
@implementation MyClass
+(void) initialize
{
[super initialize];
GlobalVariableThatShouldNeverChange = [[SubclassOfNSObject alloc] init];
// Change more stuff with GlobalVariableThatShouldNeverChange
}
@end
我在代码中多次引用了这个变量,并且这个指针在我的代码中到处都使用,因此它不应该改变。但问题是,当我使用
GHUnit
运行测试时,GlobalVariableThatShouldNeverChange
的指针会被更改(即被重新初始化)。我曾经遇到过变量通过autorelease pool释放的问题,已经解决了,我也有一个解决这个问题的方法,但我仍然想知道为什么会出现这种情况。谢谢!
self == Superclass
,谢谢!那么你必须要有[super initialize]
吗? - Richard J. Ross III