2014-09-23 13 views
9

Ho un'app iOS (7.1) che si arresta in modo anomalo a causa di EXC_BAD_ACCESS. Se non sbaglio, ciò accade a causa dell'uso di un oggetto già disallocato. Dopo un po 'di ricerche, ho scoperto che abilitare gli oggetti Zombie aiuta a individuare la linea di errore. Poiché sto usando xcode 5.1.1, ho effettuato le seguenti operazioni su Abilita oggetti Zombie.Abilita e debug oggetti Zombie in iOS utilizzando Xcode 5.1.1

Product -> Scheme -> Edit Scheme


E poi, selezionando la casella Enable Zombie Objects,

Checking <code>Enable Zombie Objects</code>


Poi sono andato a pannello Instruments, selezionato Zombies, cliccato Profilo e ottenuto questo,

iOS simulator and Instruments panel


Ora il simulatore (sullo sfondo a sinistra), che aveva una button e un textfield è in esecuzione in bianco e anche io non riesco a capire nulla sul pannello di Instruments.

Quale dovrebbe essere il prossimo passo? Voglio dire, come posso ottenere le linee che stanno causando il cattivo accesso? Sono bloccato su questo per ore ma non sono riuscito a trovare la procedura.

Qualsiasi aiuto è apprezzato.

risposta

5

L'accesso a un oggetto deallocato non è l'unico motivo per cui si ottiene EXC_BAD_ACCESS. Altre cause di errori di accesso errati includono l'accesso a puntatori nulli e il superamento di un array.

Guardando gli screenshot, non si sta utilizzando un oggetto deallocato. Se stavi usando un oggetto deallocato, il modello Zombies in Strumenti ti farebbe sapere. Gli strumenti avrebbero mostrato un messaggio simile al seguente:

enter image description here

Il prossimo passo dovrebbe essere quello di impostare un punto di interruzione un'eccezione in Xcode. Quando l'app si arresta in modo anomalo, Xcode interrompe l'app nel punto in cui si verifica l'arresto anomalo. Per impostare un punto di interruzione di eccezione, aprire il navigatore di breakpoint scegliendo Visualizza> Navigatori> Mostra Breakpoint Navigator. Fai clic sul pulsante + nella parte inferiore del navigatore e scegli Aggiungi punto di interruzione eccezione.

+1

Sì, ho fatto esattamente questo e ora sto cercando di capire perché alcune semplici istruzioni producono eccezioni !! – Sibir