簡単な質問ですが、objective-c をプログラミングして約 2 か月になりますが、他の多くの言語にも精通しています。
次の状況がシングルトンに適しているかどうかを知りたいのですが、そうであれば、現在のコードよりもシングルトンの初期化を処理する適切な方法はありますか?
私は、他の多数のクラスからアクセスされるシングルトンのenemensArrayを持っています。これは私の Enemy クラスにあります。敵は、いくつかの敵固有のクラスの直接の親です。敵固有の各クラスは、それ自体の初期化中に initWithSpriteFile にアクセスします。これにより、敵がenemensArrayシングルトンに追加されます。
// Singletons
static NSMutableArray *enemiesArray;
// Methods
+(NSMutableArray *) sharedEnemies
{
if (!enemiesArray) { enemiesArray = [[NSMutableArray alloc] init]; }
return enemiesArray;
}
+(id) initWithSpriteFile:(NSString *) spriteFile;
{
if (!enemiesArray) { enemiesArray = [[NSMutableArray alloc] init]; }
if ((self = [super spriteWithFile:spriteFile])) {
[enemiesArray addObject:self];
}
return self;
}