快速提问,我已经编写objective-c 大约2 个月了,但是我精通许多其他语言。
我想知道以下情况是否适合单例,如果是,是否有比我当前的代码更合适的方式来处理单例的初始化?
我有许多其他类可以访问的单例、敌人数组。这是在我的敌人类中,敌人是许多敌人特定类的直接父级。每个特定于敌人的类在它自己的初始化期间访问 initWithSpriteFile,这反过来又将敌人添加到enemysArray 单例中。
// 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;
}