我的应用程序使用视图控制器(视图 1)中显示的视频作为应用程序菜单/导航的背景。按钮位于视频的顶部,根据视频的位置,按钮导航到应用程序的不同部分。它工作正常,直到我导航到另一个部分(视图 2 等),然后返回到视图 1。之后,通知在视图 1 中崩溃:
[NSKeyValueObservance movieStateChangeCallback:]:无法识别的选择器发送到实例 0x13e920 2012-10-27 08:50:04.830 AppName[13707:707] *由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[NSKeyValueObservance movieStateChangeCallback:]:无法识别选择器发送到实例 0x13e920'
以下是我添加到 View 1 的 init 方法的通知:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(movieStateChangeCallback:) name:MPMoviePlayerPlaybackStateDidChangeNotification object:player];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(movieFinishedCallback:) name:MPMoviePlayerPlaybackDidFinishNotification object:player];
player是 View 1 的属性,因此声明如下:
@property (strong) MPMoviePlayerController *player;
我意识到这可能意味着播放器正在被释放?当我返回视图 1 时,包括视频在内的其他一切都正常,只是通知崩溃了。
当用户返回视图 1 时,它正在重新初始化。
我正在使用 ARC。