2013-02-21 14 views
11

Sto cercando di migliorare l'utilizzo di Xcode. Ho attivato il punto di interruzione AllExceptions. Quando i miei applicazione si blocca, vedo questo:Debug dell'eccezione non rilevata in Xcode

*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 1 beyond bounds [0 .. 0]' 
*** First throw call stack: 
(0xbb8052 0x209cd0a 0xba4db8 0x2255f2 0xc2439 0x12a5e0f 0x12a6589 0x146bfb1 0x147617c 0x12938e1 0x1290602 0x129b211 0x129b23f 0xc16a6 0x138a4c 0x138852 0x14d0e39 0x14d0143 0x14d13cf 0x14d3a31 0x14d398c 0x14cc3e7 0x1234812 0x1234ba2 0x121b384 0x120eaa9 0x28d3fa9 0xb8c1c5 0xaf1022 0xaef90a 0xaeedb4 0xaeeccb 0x28d2879 0x28d293e 0x120ca9b 0x265c 0x25c5) 
terminate called throwing an exception(lldb) 

sul lato sinistro, quando guardo i fili diversi, non vedo tutto ciò che fa davvero senso. Vedo roba CFRunLoop, ma non vedo nomi di metodi "normali" come i metodi UITableView delegate/datasource oi miei metodi. Mi stavo chiedendo se fosse disponibile una traccia di stack più informativa invece delle cose esadecimali quando la mia app si arresta in modo anomalo. So che posso impostare i punti di interruzione in ogni posto in cui sto accedendo alla matrice, penso di avere un problema dato che sto praticamente cercando di avere una tabella con una fisarmonica simile alla nostra origine dati specifica, ma mi stavo chiedendo se ci fosse un più veloce modo guardando qualcosa di utile in Xcode. Grazie!

+0

Cerca i loop che fai nel tuo codice e verifica se chiami il nostro indice di limiti. si ha un array con un solo oggetto e si chiama array [1] –

+0

Come esperienza, penso che ci sia uno strumento in xcode in grado di aiutarti in questo. Se si esegue il dispositivo, è possibile vedere il registro da Organizer e ci si può bene più utile Info –

risposta

40

In Xcode,

  1. andare al punto di interruzione navigatore nel riquadro di sinistra.
  2. Fare clic su "+" in basso.
  3. Scegliere "Aggiungi punto di interruzione eccezione ..."
  4. Lasciare le selezioni predefinite lì e fare clic su "Fatto".

Rieseguire l'app e verificare se l'esecuzione si interrompe sulla linea che ha causato questa eccezione.

+4

Supponiamo di avere 1000 eccezioni gestite e si desidera trovare l'eccezione non rilevata, quindi questo non sta aiutando molto ... – hfossli

+1

funziona per obiettivo c e non funziona per veloce –