- [MPTransportButton _isChargeEnabled]: сообщение отправлено освобожденному экземпляру 0x4bf6cb0 - PullRequest
0 голосов
/ 04 октября 2011

Я использую MPMoviePlayerViewController для воспроизведения видео.Видеоплеер будет показан как presentModalViewController.Если видео закончено и просмотр закрыт.Я получаю сообщение об ошибке:

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

Но я понятия не имею, где возникает ошибка.

Заранее спасибо.

Приветствие,

Патрик

Ответы [ 3 ]

2 голосов
/ 15 ноября 2011

Возможно, вы пытаетесь отключить видеоплеер несколько раз при удалении модала?

Убедитесь, что вы отменили регистрацию во всех уведомлениях, прежде чем закрывать вид игрока (MPMoviePlayerLoadStateDidChangeNotification, MPMoviePlayerPlaybackStateDidChangeNotification, ...)

- (void)closeVideoPlayer
{
       [[NSNotificationCenter defaultCenter] removeObserver:self];  

       if (mp)
       {                
            [mp stop];
            [mp.view removeFromSuperview];
            mp = nil;       

            [self dismissModalViewControllerAnimated:animated];
        }
}

Удачи!

2 голосов
/ 22 декабря 2011

Относится к ответу jotaefe: убедитесь, что представление MPMoviePlayerController не находится в иерархии после выпуска MPMoviePlayerController.Эта ситуация может оставить висячие ссылки на некоторые из подпредставлений представлений вашего MPMoviePlayerController, что, в свою очередь, может привести к появлению сообщения зомби «сообщение отправлено освобожденному экземпляру».

0 голосов
/ 04 октября 2011

В сообщении говорится: объект класса MPTransportButton, значение которого было сохранено в 0x4bf6cb0, был освобожден и затем использован снова.

Итак, вам нужно найти объект типа MPTransportButton, который был освобождена затем повторно.

...