这是我按钮的标题。
IBOutlet UIButton *buttonOneOne;
}
- (IBAction)buttonOneOne:(id)sender;
@property (nonatomic, retain) IBOutlet UIButton *buttonOneOne;
这是我在我的.m文件中添加的内容
- (IBAction)buttonOneOne:(id)sender {
NSString *soundFilePath = [[NSBundle mainBundle] pathForResource:@"95" ofType:@".wav"];
NSError *activationError = nil;
NSError *audioPlayerInitError = nil;
[[AVAudioSession sharedInstance] setActive: YES error:&activationError];
NSURL *newURL = [NSURL fileURLWithPath:soundFilePath];
AVAudioPlayer *musicPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:newURL error:&audioPlayerInitError];
[musicPlayer prepareToPlay];
[musicPlayer setVolume:.8];
[musicPlayer setNumberOfLoops:-1]; // -1 means play indefintely
[musicPlayer setDelegate: self];
[musicPlayer play];
}
为什么会崩溃?
答案 0 :(得分:1)
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSURL initFileURLWithPath:]: nil string parameter'
表示无法找到您引用的文件。
指定文件扩展名时不应使用点。
更改ofType:@".wav"
到ofType:@"wav"
答案 1 :(得分:0)
你应该发布一些控制台输出(可能是一个堆栈跟踪),它会帮助我们更多。
我可以从此代码中看到崩溃的可能原因:
在为synthesize
取代{+ 1}}之后,您的按钮是@property
了吗?
您的Xcode项目中是否存在95.wav
(您导入了它)吗?
您使用的是Interface Builder吗?如果是这样,请检查您的IB项目中的旧IBOutlets和IBActions,因为一旦重命名了一个函数或诸如此类的东西,您必然会得到指向旧代码的接口元素。