– :发送到释放实例0x4bf6cb0的消息

我正在使用MPMoviePlayerViewController播放video。 录像机将显示为presentModalViewController 。 如果video已完成并且视图已被解除。 我得到的错误:

  -[MPTransportButton _isChargeEnabled]: message sent to deallocated instance 0x4bf6cb0 

但是我不知道错误在哪里。

提前致谢。

问候,

帕特里克

该消息说:类MPTransportButton的值存储在0x4bf6cb0已被释放,然后再次使用。

所以,你需要findMPTransportButtontypes的对象,这个对象被释放,然后被重用。

删除模式时,您可能会尝试多次closuresvideo播放器?

确保您在解除播放器视图之前从所有通知中取消注册(MPMoviePlayerLoadStateDidChangeNotification,MPMoviePlayerPlaybackStateDidChangeNotification,…)

 - (void)closeVideoPlayer { [[NSNotificationCenter defaultCenter] removeObserver:self]; if (mp) { [mp stop]; [mp.view removeFromSuperview]; mp = nil; [self dismissModalViewControllerAnimated:animated]; } } 

祝你好运!

与jotaefe的答案相关:检查以确保MPMoviePlayerController的视图在MPMoviePlayerController被释放后不在层次结构中。 这种情况可能会导致你的一些MPMoviePlayerController的视图子视图的悬而未决的引用,从而可能导致你的僵尸“发送到解除分配的实例的消息”的错误。