尝试将对象添加到数组时出现 EXC_BAD_ACCESS 错误。我知道这可能意味着我指向内存中不存在的东西,或者对象包含 nil 值。
代码:
- (void)fadeInPlayer:(AVAudioPlayer *)player withMaxVolume:(float)maxVolume {
NSLog(@"player: %@", player);
NSLog(@"maxVolume: %f", maxVolume);
NSMutableArray *playerAndVolume = [NSMutableArray arrayWithObjects: player, maxVolume, nil];
if (player.volume <= maxVolume) {
player.volume = player.volume + 0.1;
NSLog(@"%@ Fading In", player);
NSLog(@"Volume %f", player.volume);
[self performSelector:@selector(fadeInPlayer:withMaxVolume:) withObject:playerAndVolume afterDelay:0.5];
//playerAndVolume array used here because performSelector can only accept one argument with a delay and I am using two...
}
}
奇怪的是,当我打印要添加到控制台的对象时(如上面的 NSLogs 所示),它们返回数据:
player: <AVAudioPlayer: 0x913f030>
maxVolume: 0.900000
该应用程序在 NSLogs 之后立即崩溃。其余代码在没有数组的情况下工作正常,但我需要使用它来调用方法上的 performselector:withObject:AfterDelay。
因此,我如何初始化数组或对象类型肯定有问题,但我无法弄清楚。
任何帮助表示赞赏。