– :发送到释放实例0x4bf6cb0的消息
我正在使用MPMoviePlayerViewController
播放video。 录像机将显示为presentModalViewController
。 如果video已完成并且视图已被解除。 我得到的错误:
-[MPTransportButton _isChargeEnabled]: message sent to deallocated instance 0x4bf6cb0
但是我不知道错误在哪里。
提前致谢。
问候,
帕特里克
该消息说:类MPTransportButton
的值存储在0x4bf6cb0
已被释放,然后再次使用。
所以,你需要findMPTransportButton
types的对象,这个对象被释放,然后被重用。
删除模式时,您可能会尝试多次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的视图子视图的悬而未决的引用,从而可能导致你的僵尸“发送到解除分配的实例的消息”的错误。