1
我是非常新的ios開發,並且我沒有真正承諾,但控制檯顯示的錯誤。IOS - 終止應用程序,由於未捕獲的異常'NSInvalidArgumentException無法識別的選擇器發送到實例0x7a9a2c0'
這是錯誤:
終止應用程序由於未捕獲的異常 'NSInvalidArgumentException',原因是: ' - [NVViewController播放:]:無法識別的選擇發送到實例0x7a9a2c0'
我把我的代碼下面,當我觸摸播放按鈕時發生錯誤。
#import "NVViewController.h"
@implementation NVViewController
@synthesize reproductor;
- (void)viewDidLoad
{
[super viewDidLoad];
NSError* error;
NSString* ruta = [[NSBundle mainBundle] pathForResource:@"BackgroundMusic" ofType:@"mp3"];
NSURL* url = [[NSURL alloc] initFileURLWithPath:ruta];
self.reproductor = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
[self.reproductor prepareToPlay];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)playBackgroundMusic:(id)sender {
[self.reproductor play];
}
- (IBAction)stopBackgroundMusic:(id)sender {
[self.reproductor stop];
}
@end
和標題。
@interface NVViewController : UIViewController
@property (nonatomic,strong) AVAudioPlayer * reproductor;
- (IBAction)playBackgroundMusic:(id)sender;
- (IBAction)stopBackgroundMusic:(id)sender;
@end
謝謝。
嘗試將self.reproductor = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];在playBackgroundMusic之前[self.reproductor play]; – 2013-02-16 07:02:43
我會建議只是嘗試[複製播放];而不是自我。出於某種原因,您的代碼正在調用NIViewController(self)方法而不是AVAudioPlayer對象。 – 2013-02-16 07:19:37
您應該從NVViewController放置也使用self.reproductor的代碼,因爲您可能將self.reproductor設置爲NVViewController對象。 – 2013-02-16 07:46:04