Сбой NSMutableArray во время выполнения - PullRequest
0 голосов
/ 07 июня 2011

Я получаю сбой во время выполнения, когда пытаюсь получить доступ к массиву NSMutable, который правильно загружен.вот код

NSMutableArray *gameItems;

-(id) init
{
       if( (self=[super init])) {

         //initialize array       
        gameItems = [NSMutableArray array];

        for(int i = 0; i < 3; i++)
        {
            GI *gameItem = [[GI alloc] init];
            gameItem.image = [[CCSprite alloc] initWithFile:@"triangle.png"];
            gameItem.Position = ccp(140+40*i,200);
            [gameItems addObject:gameItem];
            [gameItem release];
            NSLog(@"%d",[gameItems count]); //SHOWS THE SIZE OF THE ARRAY INCREMENTING CORRECTLY
        }
        NSLog(@"%d",[gameItems count]); //show " 3 " correct !

        for(GI *gameItem in gameItems)
        {
            [self addChild:gameItem.image]; 
             NSLog(@"%d",[gameItems count]);  //show 3 correct !
        }
        [self schedule:@selector(callEveryFrame:)];
    }
    return self;
}

- (void) callEveryFrame:(ccTime)dt
{
    NSLog(@"----->%d",[gameItems count]); //CRASHES AT RUNTIME IN THIS LINE
}
@end

Пожалуйста, кто-нибудь объяснит мне, почему это происходит.Может ли быть проблема с автоматическим выпуском NSMutableArray?

1 Ответ

1 голос
/ 07 июня 2011

(размещено по запросу)

Если ваш массив gameItems является членом, который, по-видимому, является членом, чтобы иметь возможность доступа к нему в других функциях, таких как callEveryFrame, то вам, безусловно, нужно инициализировать его следующим образом: gameItems = [[NSMutableArray alloc] init];

(вы пропустили выделение, которое я считаю)

...