2010-10-29 1 views
0

я играю в кино, используя MPMovieplayerViewController и я хочу, чтобы зарегистрироваться для получения уведомлений, когда фильм останавливается ... Я использую следующий код, чтобы использовать NSNotification, но мое приложение рушится, когда фильм останавливается ... У меня есть использовал NSNotification так же раньше, когда он выполнялся отлично .. любая идея относительно того, что я делаю неправильно ??Регистрация для NSNotification сбой моего приложения?

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(playbackFinishedCallback:) 
              name:MPMoviePlayerPlaybackDidFinishNotification 
              object:movie]; 
[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(moviePlayBackDidFinish:) 
              name:MPMoviePlayerPlaybackDidFinishNotification 
              object:nil]; 
- (void) moviePlayBackDidFinish:(NSNotification*)notification 
{ 

NSLog(@"moviePlayBackDidFinish"); 
    MPMoviePlayerViewController *movie = [notification object]; 
    [[NSNotificationCenter defaultCenter] removeObserver:self 
               name:MPMoviePlayerPlaybackDidFinishNotification 
               object:movie]; 


[self performSelector:@selector(stopRecording) withObject:nil afterDelay:1.0]; 

} 

-(void)playbackFinishedCallback:(NSNotification *)notification{ 

MPMoviePlayerViewController *movie = [notification object]; 
[[NSNotificationCenter defaultCenter] removeObserver:self 
               name:MPMoviePlayerPlaybackDidFinishNotification 
               object:movie]; 

NSLog(@"playbackFinishedCallback:"); 


[self performSelector:@selector(stopRecording) withObject:nil afterDelay:1.0]; 


} 

в моем классе AppDelegate я зарегистрировался как этот

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  


[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(moviePlayBackDidFinish:) 
              name:MPMoviePlayerPlaybackDidFinishNotification 
              object:nil]; 



// Override point for customization after application launch. 

// Add the navigation controller's view to the window and display. 
[window addSubview:navigationController.view]; 
[window makeKeyAndVisible]; 

return YES; 
} 

- (void)dealloc { 

[[NSNotificationCenter defaultCenter] removeObserver:self 
               name:MPMoviePlayerPlaybackDidFinishNotification 
               object:nil]; 

[navigationController release]; 
[window release]; 
[super dealloc]; 

}

ответ

1

Может быть, это что:

[[NSNotificationCenter defaultCenter] addObserver:self 
            selector:@selector(moviePlayBackDidFinish:) 
             name:MPMoviePlayerPlaybackDidFinishNotification 
             object:nil]; 

В строке выше вы передаете ноль объект и метод, который вы пытаетесь получить:

MPMoviePlayerViewController *movie = [notification object]; 

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

  • Нет связанных вопросов^_^