执行多个操作的按钮出错

时间:2014-03-03 02:45:58

标签: ios audio uibutton

我正在尝试播放音频并使用相同的按钮切换视图..

- (IBAction)yourbuttonClicked:(UIButton *)sender
{
    //start a background sound
    NSString *soundFilePath = [[NSBundle mainBundle] pathForResource:@"tap2" ofType: @"caf"];
    NSURL *fileURL = [[NSURL alloc] initFileURLWithPath:soundFilePath ];
    myAudioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:fileURL error:nil];
    myAudioPlayer.numberOfLoops = -1; //infinite loop
    [myAudioPlayer play];

    //for Switch view
    ViewController *nextView = [[ViewController alloc] initWithNibName:@"ViewController2"   
    bundle: Nil];
    [self.navigationController pushViewController:nextView animated:YES];
}
  

2014-03-02 19:07:46.817 Balloon Tap [847:70b] *因未捕获的异常而终止应用       'NSInvalidArgumentException',原因:'* - [NSURL initFileURLWithPath:]:nil string       参数'

当我启动我的模拟器并单击执行操作的播放按钮时,它会崩溃,并且在我的日志中它会出现上面的错误..

如何修复此问题并编辑代码?

1 个答案:

答案 0 :(得分:0)

看起来soundFilePath是Nil

试试这个 NSURL * url = [NSURL fileURLWithPath:stringPath];

这会删除alloc,这可能会在这里引起一些问题。另外我确定你已经检查过了,但文件名有问题吗?它确实存在于您的捆绑包中吗?即它是用其余的代码编译的吗?确保将该文件添加到项目中,并且它出现在Xcode中可执行文件目标的“复制包资源”构建阶段。