2014-06-30 25 views
9

In Objective-C, ogni volta che un'applicazione si blocca, posso ottenere analisi dello stack per vedere dove è l'ultimo metodo che causa l'errore utilizzando questo codice AppDelegateCome posso ottenere lo stack trace error in Swift?

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    NSSetUncaughtExceptionHandler(&myExceptionHandler); 
    return YES; 
} 

void myExceptionHandler(NSException *exception) 
{ 
    NSArray *stack = [exception callStackReturnAddresses]; 
    NSLog(@"Stack trace: %@", stack); 

    NSLog(@"MyExceptionHandler"); 
} 

e sarà stampare il registro dello stack trace a console che posso utilizzare per eseguire il debug della causa del problema anziché finire a main.m senza informazioni

Quindi, come posso farlo in Swift?

+1

controllo: http://stackoverflow.com/questions/24023112/try-catch-exceptions-in-swift –

+0

Nota: Il codice mostra solo tracce di stack per le eccezioni, non anche per altri incidenti a base di segnale. – Kerni

risposta

3

Se ho capito bene, penso che quello che state cercando è un un'eccezione breakpoint, che funziona esattamente come un punto di interruzione regolare, ma viene chiamato ogni volta che viene generata un'eccezione. In questo modo, interromperà l'applicazione nel punto in cui è stata generata l'eccezione, in modo da poter visualizzare il metodo, la riga di codice e i valori delle variabili al momento del crash.

Questo può essere impostato per andare alla scheda Breakpoint Navigator nel Navigator, cliccando sul segno più in basso a sinistra e selezionando "Aggiungi eccezione Breakpoint".

Il Punto di interruzione di eccezione può essere modificato con varie opzioni facendo clic destro su di esso e selezionando "Modifica Breakpoint".

Problemi correlati