インスタンス変数をdeallocするために使用できると想定している-dealloc()メソッドがあります。インスタンスにない別の変数がありますが、クラスレベルの変数であり、いつどのようにこれをdeallocするのか疑問に思っていますか?インスタンスメソッドdealloc()ではできませんよね?参考のために以下のコード(変数:levelHash):
@interface Level : CCNode
{
//Instance variables
PlayBackgroundLayer* playBGLayer;
PlayTilemapLayer* playTilemapLayer;
PlayUILayer* playUILayer;
PlayElementLayer* playElementLayer;
}
//Property declarations for instance variables
@property (nonatomic, retain) PlayBackgroundLayer* playBGLayer;
@property (nonatomic, retain) PlayTilemapLayer* playTilemapLayer;
@property (nonatomic, retain) PlayUILayer* playUILayer;
@property (nonatomic, retain) PlayElementLayer* playElementLayer;
//Static methods
+(void) Initialize: (NSString*) levelReference;
+(void) InitLevel: (NSString*) levelReference;
+(Level*) GetCurrentLevel;
@end
//static variables
NSMutableDictionary *levelHash;
と私の実装:
+(void) Initialize: (NSString*) levelReference
{
levelHash = [[NSMutableDictionary alloc] init];
[levelHash setObject:NSStringFromClass([LevelOne class]) forKey:@"1"];
//EG CALL IT [levelHash objectForKey:@"foo"];
//WHEN DO I CALL THIS??? [levelHash release];
}