2012-01-04 11 views
11

Utilizzando Xcode 5 e il conteggio di riferimento automatico è abilitato.UIButton toccato ottenendo [SecondPage performSelector: withObject: withObject:]: messaggio inviato all'istanza deallocata

In un'applicazione basata su NavigationController, prendo un UIButton e IBAction e IBOutlet sono definiti e connessi correttamente. Ma prima dell'evento IBAction per TouchUpInside chiamato da Button registrato, l'app fornisce "[SecondPage performSelector: withObject: withObject:]: messaggio inviato all'istanza deallocata 0x6cb7970". SecondPage è il controller di visualizzazione su cui esiste questo UIButton.

Fondamentalmente voglio aprire la visualizzazione di un nuovo view-controller su questo UIButton sfruttato e lo farò da Custom Segue

risposta

27

Hmm strano che suona come ARC è autoreleasing il controller secondView prima che il selettore viene chiamato.

Provare a definire il tuo secondoView come proprietà del primo (se lo aggiungi come sottoview) con un tipo di proprietà di strong.

Questo è tutto ciò che posso raccomandare senza vedere il tuo codice.

+0

Dopo aver aggiunto la proprietà con arresto anomalo di riferimento forte non sta accadendo – Prasad

+0

@Matt Rees, questo è quello che ho assunto ma ottengo questo arresto solo su iOS7 - Qualsiasi pensiero? –

+0

@JoelBalmer iOS 7 non farà alcuna differenza, questi metodi sono disponibili da iOS 5 e nulla è cambiato. Il bug sarà altrove nel tuo codice. –

1

Avevo lo stesso problema e ho risolto ciò che suggeriva Matt Rees.

Basta declassare il tuo secondoViewController in firstViewController.h e creato l'istanza lì. Mi piace, secondViewController * secondView;

0

Avevo lo stesso problema e ho risolto l'errore.

Con maggiori dettagli, stavo riallocando l'oggetto chiamante (SecondPage in questo caso) su logout/login, ma riutilizzando alcuni altri viewcontrollers, quindi il viewcontroller riutilizzato ha un'istanza precedente dell'oggetto chiamante che ho riallocato.

Bene, risolto ora!

Problemi correlati