私はObjective-Cでこれに似たコードを持っています:
SubclassOfNSObject *GlobalVariableThatShouldNeverChange;
@implementation MyClass
+(void) initialize
{
[super initialize];
GlobalVariableThatShouldNeverChange = [[SubclassOfNSObject alloc] init];
// Change more stuff with GlobalVariableThatShouldNeverChange
}
@end
これはコード全体で参照されていますが、これへのポインタは、コード全体でどこでも使用しているため、変更されることはありません。問題は、 を使用してテストを実行するGHUnit
と、 のポインターが変更されるという奇妙な問題が発生するGlobalVariableThatShouldNeverChange
ことです (つまり、再初期化されます。自動解放プールを介して変数が解放されるという問題があり、それは修正されました。この問題の回避策がありますが、その理由を知りたいですか?
ありがとうございました!