Ho un paio di viste che accedono al riproduttore di film. Ho inserito il seguente codice in un metodo in AppDelegate per queste viste. Mandano il nome del file per giocare. Il codice funziona bene, ma so che è necessaria una versione da qualche parte. Se aggiungo l'ultima riga come release o autorelease, l'app si arresta in modo anomalo una volta che l'utente ha premuto sul filmplayer.Come rilasciare MPMoviePlayerController?
MPMoviePlayerController *moviePlayer = [[MPMoviePlayerController alloc]
initWithContentURL:[NSURL fileURLWithPath:moviePath]];
moviePlayer.movieControlMode = MPMovieControlModeDefault;
[moviePlayer play];
//[moviePlayer release];
ottengo questo errore:
objc [51051]: LIBERATO (id): messaggio inviato a videoViewController oggetto liberato = 0x1069b30
programma ha ricevuto il segnale: “EXC_BAD_INSTRUCTION”.
Come devo rilasciare il lettore?
Sì, ho già ricevuto il suono/nessun video. Eccezionale!Come ti guardi dalle notifiche multiple? Crollerà se gestisci più? – 4thSpace
Dovrai avere una sorta di flag: se non è impostato, impostalo e rilascia il player. Se è impostato, non fare nulla. –
Probabilmente si potrebbe anche memorizzare MPMoviePlayerController come un ivar nel delegato. Nel metodo moviePlaybackDidFinish: puoi rilasciare ivar e impostarlo su nil invece di accedere a notification.object. La seconda notifica invierà stop e autorelease a zero, il che va bene. –