Iphone 这个场景适合单身汉吗?

Iphone 这个场景适合单身汉吗?,iphone,objective-c,ios,cocos2d-iphone,Iphone,Objective C,Ios,Cocos2d Iphone,快速问一下,我已经为objective-c编程了大约2个月了,但是我精通许多其他语言 我想知道以下情况是否适用于单例,如果适用,是否有比我当前的代码更适合处理单例初始化的方法 我有一个单独的enemiesArray,它可以被许多其他类访问。这是在我的敌人类中,敌人是一些敌人特定类的直接父类。每个特定于敌人的类在其自身的初始化过程中访问initWithPriteFile,从而将敌人添加到enemiesArray单例中 // Singletons static NSMutableArray *ene

快速问一下,我已经为objective-c编程了大约2个月了,但是我精通许多其他语言

我想知道以下情况是否适用于单例,如果适用,是否有比我当前的代码更适合处理单例初始化的方法

我有一个单独的enemiesArray,它可以被许多其他类访问。这是在我的敌人类中,敌人是一些敌人特定类的直接父类。每个特定于敌人的类在其自身的初始化过程中访问initWithPriteFile,从而将敌人添加到enemiesArray单例中

// 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;
}

是否为CCNode对象(如CCSprite)?然后将这些存储在一个单例中会带来内存泄漏的真正危险,因为在更改场景时可能仍然保留对场景节点的引用。这将使前一个场景留在记忆中。您应该将该代码放在场景的类中。这里不需要使用单例。

因此不用于代码优化。。。