-[MPTransportButton _isChargeEnabled]: сообщение отправлено на освобожденный экземпляр 0x4bf6cb0

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

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

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

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

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

Патрик


person Schumi    schedule 04.10.2011    source источник


Ответы (3)


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

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

person Nekto    schedule 04.10.2011
comment
Хотя этот ответ технически верен, на самом деле он не помогает объяснить, почему MPTransportButton (очевидно, частный класс от Apple) все еще имеет ссылку на него. Взгляните на jotaefe и мои собственные ответы, чтобы лучше понять этот вопрос. - person kalperin; 22.12.2011

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

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

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

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

            [self dismissModalViewControllerAnimated:animated];
        }
}

Удачи!

person Juan Fran Jimenez    schedule 15.11.2011

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

person kalperin    schedule 22.12.2011