Метод count NSMutableArray выдает исключение при вызове в выражении

 if ([diamonds count] == 0) {
    [self toggleWinLevel];
}

Когда diamonds - это NSMutableArray, а toggleWinLevel - это метод экземпляра, если я запустил это приложение, оно выйдет из строя в этой строке с EXC_BAD_ACCESS:

 if ([diamonds count] == 0) {

Это определенно связано с моим массивом, поскольку это продолжается, даже когда я назначаю int или NSUInteger или NSNumber для моего счетчика массива. Мой NSMutableArray выделен и инициализирован. В чем проблема?

ОБНОВЛЕНИЕ 1:

Я выделил и инициализировал его в этом методе, который ДЕЙСТВИТЕЛЬНО вызывается, и у меня есть NSLog, который регистрируется в консоли для проверки:

    -(void)setUpObjects {

NSLog(@"Setting Up Objects"); // This is printed in my console

[levelNumberLabel setHidden:YES];
diamonds = [[NSMutableArray alloc] init];
rocks = [[NSMutableArray alloc] init];

if (levelNumber < 3) {

    diamonds = [NSMutableArray arrayWithObjects:@"1", nil];

} else if (levelNumber > 2 <= 4) {

    diamonds = [NSMutableArray arrayWithObjects:@"1", @"2", @"3", nil];

} else if (levelNumber > 4 <= 6) {

    diamonds = [NSMutableArray arrayWithObjects:@"1", @"2", @"3", @"4", nil];

} else if (levelNumber > 6 <= 10) {

    diamonds = [NSMutableArray arrayWithObjects:@"1", @"2", @"3", @"4", @"5", nil];

} else if (levelNumber > 10) {

    diamonds = [NSMutableArray arrayWithObjects:@"1", @"2", @"3", @"4", @"5", @"6", nil];
}

if ([diamonds count] > 1 <= 2) {

    rocks = [NSMutableArray arrayWithObjects:@"1", @"2", nil];                 

} else if ([diamonds count] > 2 <= 5) {

    rocks = [NSMutableArray arrayWithObjects:@"1", @"2", @"3", nil];

} else if ([diamonds count] > 5) {

    rocks = [NSMutableArray arrayWithObjects:@"1", @"2", @"3", @"4", nil];
}

[self drawObjects];
}

BTW алмазы (массив) - это переменная экземпляра

0
задан jv42 22 November 2011 в 09:35
поделиться