'NSInvalidArgumentException',原因:'*** - [NSURL initFileURLWithPath:]:nil字符串参数

时间:2015-03-20 16:51:53

标签: ios objective-c xcode avfoundation

我正在为我的游戏添加声音效果,直到我输入此代码才能正常运行:

if (hit == NO) {
        NSString *path = [[NSBundle mainBundle] pathForResource:@"miss" ofType:@"m4a"];
        AVAudioPlayer* theAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
        [theAudio play];
        NSLog(@"audio played miss.m4a");
        // if hit is no miss sound effect plays

    }
    else {
        NSString *path = [[NSBundle mainBundle] pathForResource:@"hit" ofType:@"m4a"];
        AVAudioPlayer* theAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
        [theAudio play];
        NSLog(@"audio played hit.m4a");
        //if hit is yes or else (not no) then it plays hit sound effect
    }

它说问题是围绕[NSURL fileURLWithPath:path]部分,我已经检查了它并经历了很多问题和教程,但似乎无法找到解决方案。我的所有文件都在Xcode项目中,并且正确命名并对应于我的pathForResource:@“miss”和hit以及ofType等。

1 个答案:

答案 0 :(得分:0)

使用断点检查路径,如果它是零,则可能是资源不在捆绑中或者名称不同。
请注意,虽然模拟器不区分大小写,但设备区分大小写。