-[MPTransportButton _isChargeEnabled]: pesan dikirim ke instance 0x4bf6cb0 yang dibatalkan alokasinya

Saya menggunakan MPMoviePlayerViewController untuk memutar video. Pemutar video akan ditampilkan sebagai presentModalViewController. Jika video sudah selesai dan penayangannya ditutup. Saya mendapatkan kesalahan:

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

Tapi saya tidak tahu, di mana kesalahannya.

Terima kasih sebelumnya.

Salam,

Patrick


person Schumi    schedule 04.10.2011    source sumber


Jawaban (3)


Pesannya berbunyi: objek kelas MPTransportButton yang nilainya disimpan di 0x4bf6cb0 telah dilepaskan dan kemudian digunakan kembali.

Jadi, Anda perlu mencari objek bertipe MPTransportButton yang dirilis dan kemudian digunakan kembali.

person Nekto    schedule 04.10.2011
comment
Meskipun jawaban ini secara teknis benar, ini tidak terlalu membantu menjelaskan mengapa MPTransportButton (tampaknya Kelas privat dari Apple) masih memiliki referensi ke sana. Lihatlah jawaban jotaefe dan saya sendiri untuk mendapatkan lebih banyak wawasan tentang pertanyaan itu. - person kalperin; 22.12.2011

Anda mungkin mencoba menutup pemutar video beberapa kali saat menghapus modal?

Pastikan Anda membatalkan pendaftaran dari semua notifikasi sebelum menutup tampilan pemutar juga (MPMoviePlayerLoadStateDidChangeNotification, MPMoviePlayerPlaybackStateDidChangeNotification, ...)

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

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

            [self dismissModalViewControllerAnimated:animated];
        }
}

Semoga beruntung!

person Juan Fran Jimenez    schedule 15.11.2011

Terkait dengan jawaban jotaefe: periksa untuk memastikan bahwa tampilan MPMoviePlayerController Anda tidak masih dalam hierarki setelah MPMoviePlayerController dirilis. Situasi ini dapat meninggalkan referensi yang menggantung ke beberapa subview tampilan MPMoviePlayerController Anda yang pada gilirannya dapat menghasilkan kesalahan "pesan terkirim ke instance yang tidak dialokasikan" zombie Anda.

person kalperin    schedule 22.12.2011