я играю в кино, используя 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];
}