Domanda

Ho un incidente che sta accadendo nel profondo di UIKit per qualche motivo; un errore EXC_BAD_ACCESS sta accadendo qualcosa come 8 chiamate in profondità in una chiamata dismissModalViewController. Ho provato ad abilitare NSZombieEnabled per il mio eseguibile, ma il registro della console stampa lo stesso errore indipendentemente dal fatto che gli zombi siano attivati ??o meno e non so quale oggetto sta causando il problema. C'è qualcosa che mi manca che devo fare per fare in modo che la console stampi le informazioni corrette?

È stato utile?

Soluzione

Leggi come usare Zombies qui .

Esegui questo in gdb. Quando ottieni EXC_BAD_ACCESS guarda lo stack in quel punto (usa il comando where di gdb o esegui il debugger della GUI Xcode). Se i problemi persistono, pubblica lo stack nella domanda originale.

Anche gli zombi ti aiuteranno solo se hai a che fare con NSObjects. Se stai usando routine di basso livello malloc / free, gli zombi non ti comprano nulla per quelle allocazioni.

Altri suggerimenti

Una cosa che ho imparato lo scorso fine settimana quando NSZombieEnabled non sembrava funzionare affatto: assicurati di non passare un non oggetto a un codice.

Nel mio caso, stavo restituendo un NSString come solo " string " anziché @ " string " ;. Ciò significava che stavo sovrascrivendo un oggetto NSString con la stringa c. Quando in seguito ho provato a scrivere un nuovo valore in quell'oggetto, stavo ottenendo un BAD_ACCESS. NSZombie non poteva fare a meno che non fosse un oggetto che stavo cercando di sovrascrivere, ma quella stringa di c.

A parte questo, considera tutti gli avvisi come errori in XCode - vorrei poterli mostrare in ROSSO nella GUI IDE - a volte sono facili da perdere.

Sembra che qualcosa sia stato rilasciato in eccesso nel controller della vista modale. Inizia commentando le righe nuove fino a quando non si interrompe.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top