需要在iPhone应用程序中删除观察者

时间:2011-01-27 18:23:21

标签: iphone objective-c mpmovieplayer

我是MPMoviePlayerController的子类。在那个课程中,我附上了我需要的所有可能的通知。其中DidFinishPlaybackExitFullScreen等加载方法。我的问题是,如果我想停止电影并关闭电影播放器​​视图我可以(并且我是否需要)在moviePlayerPlaybackStateDidChange stateStopped方法中移除观察者?如果我不这样做会怎么样?

1 个答案:

答案 0 :(得分:2)

删除任何类型观察者的最重要的地方是dealloc方法。最好的做法是在完成观察后尽快删除观察者,但绝对需要通过dealloc完成。

这样做的原因是因为如果您注册为某个事物的观察者并且您的类被取消分配,您正在观察的对象可能会尝试并回调到现在已释放的对象。这很可能会导致EXC_BAD_ACCESS并关闭您的应用程序。