2013-02-16 2 views
1

Я очень новичок в разработке ios, и я пока не знаю, какие ошибки отображаются на консоли.IOS - Завершение приложения из-за неперехваченного исключения 'NSInvalidArgumentException: нераспознанный селектор, отправленный в экземпляр 0x7a9a2c0'

Это ошибка:

Нагрузочного приложение из-за неперехваченное исключение 'NSInvalidArgumentException', причина: '- [NVViewController Play]: непризнанный селектор направлен например 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 

Спасибо.

+0

попробуйте поставить self.reproductor = [[AVAudioPlayer alloc] initWithContentsOfURL: ошибка URL: & error]; в playBackgroundMusic перед тем, как [self.reproductor play]; –

+0

Я бы предложил просто попробовать [воспроизводить игру]; вместо себя. По какой-то причине ваш код вызывает метод NIViewController (self) вместо объекта AVAudioPlayer. –

+0

Вы должны поместить код из NVViewController, который также использует self.reproductor, потому что в другом месте вы можете настроить self.reproductor для объекта NVViewController. –

ответ

1

Где-то в вашем коде (в другом месте) вы вызывали Play: на контроллер вашего вида вместо playBackgroundMusic:. В сообщении об ошибке четко указано, что вы отправили Play: на номер NVViewController, который не понял этого сообщения.

Смежные вопросы

 Смежные вопросы