if ([diamonds count] == 0) {
[self toggleWinLevel];
}
當鑽石是一個NSMutableArray和toggleWinLevel是一個實例方法,如果我運行這個應用程序崩潰與一個EXC_BAD_ACCESS這一行:NSMutableArray中的計數方法拋出一個異常
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鑽石(陣列)是一個實例變量
「我的NSMutableArray被分配和初始化」 - 你可以顯示你在哪裏做這個?因爲這似乎是這裏的問題。請包括財產聲明和初始設置代碼。 – jrturton
好的我已經更新了我的問題 – user973985
順便說一句鑽石(數組)是一個實例變量 – user973985