Do observers need to be removed in iPhone applications
I subclass MPMoviePlayerController. In that class I attached all possible notifications that I need. DidFinishPlayback
, ExitFullScreen
etc. in it's loading method. My question开发者_开发知识库 is, if I want to STOP movie and dismiss movie player view can I (and do I need to) remove observers in moviePlayerPlaybackStateDidChange
method on stateStopped
? What can happen if I don't do that?
The most important place to remove an observer of any kind is in the dealloc method. It is best practice to remove the observers as soon as your done observing but absolutely needs to be done by dealloc.
The reason for this is because if you register as an observer for something and your class gets deallocated the object you were observing could possible try and callback to the now deallocated object. More than likely this will cause an EXC_BAD_ACCESS and close your application.
精彩评论