在NSMutableArray中存储相同类的实例

时间:2013-12-28 23:25:51

标签: ios objective-c nsmutablearray instance

我正在使用Sprite-kit创建一个小游戏,我在尝试存储一个在游戏中意味着敌人的对象时遇到了问题。我使用了与我在C ++程序中使用的相同策略,但是使用了Objective-C和指针策略不起作用。

enemigo *nemesis = [[enemigo alloc] init];
self.almacenEnemigos = [[NSMutableArray alloc] initWithCapacity:kNumEnemigos];

for(int i = 0; i < kNumEnemigos; i++)
{
    [nemesis pintarEnemigo:CGPointMake(20+5*i, 20+5*i)];
    [self.almacenEnemigos addObject:nemesis];
}

我想制造四个敌人,但最后根据一个独特的敌人,我只有四倍相同的记忆地址。 var almacenEnemigos是SKScene类中的类属性。

1 个答案:

答案 0 :(得分:2)

你只在第一行创建了一个enemigo实例。您需要将实例的创建移动到循环中。

self.almacenEnemigos = [[NSMutableArray alloc] initWithCapacity:kNumEnemigos];

    for(int i = 0; i < kNumEnemigos; i++)
    {
        enemigo *nemesis = [[enemigo alloc] init];
        [nemesis pintarEnemigo:CGPointMake(20+5*i, 20+5*i)];
        [self.almacenEnemigos addObject:nemesis];
    }