2014-09-19 7 views
7

A caso (è per questo che faccio la domanda), la mia applicazione si blocca quando si desidera visualizzare i dati in textView.
L'unico messaggio di errore che ho nella mia console di debug è:libC++ abi.dylib: terminate_handler ha gettato inaspettatamente un'eccezione - 0 stack trace iOS7/iOS 8

libc++abi.dylib: terminate_handler unexpectedly threw an exception 

I googled, ma non può ottenere un indizio per trovare il modo corretto questo e come questo accade.

+1

sto ottenendo errore simile, e se guardo il stack trace, sembra che iOS stia cercando di NSLog un NSAutoLayoutContraint e sta causando l'arresto anomalo perché in questo particolare non è implementato un metodo di descrizione. –

+1

Non utilizzo l'Autolayout. Io uso il meccanismo della maschera di autoresizing. –

risposta

8

Pulire il progetto. Controllare ogni vincolo e rimuovere quello danneggiato. Pulisci nuovamente il progetto, dovrebbe funzionare.

+0

Proveremo e tornerò. –

+1

Forse questo risponde alla domanda dell'utente nel suo caso specifico, ma sicuramente non è una soluzione al problema dato. – Chiara

15

Ho ricevuto lo stesso errore e un "pulito" non lo risolve.

È stato causato dal mio flusso di test su Internet, controllo se il WiFi è collegato ma non se il WiFi ha una connessione Internet attiva che può risolvere un URL fornito. Esegue un dataWithContentsOfURL: che alla fine fallirà. Un thread simile ha suggerito questo suggerimento a questo question da parte dell'utente Keith che mi ha aiutato a identificare il problema, ovvero aggiungere punti di interruzione alle eccezioni C++.

Per abilitare: fare clic sulla vista punti di interruzione e fare clic in fondo su "+" per aggiungere un punto di interruzione. Impostalo come segue e lo stack trance sarà più significativo. Enable C++ Breakpoints

+2

Questo mi ha aiutato molto a trovare il problema, dal momento che non c'è alcun backtrace per il codice C++ causato da arresti anomali e il punto di interruzione è l'unico modo per interrompere l'esecuzione del codice e vedere quando si verifica l'arresto. Penso che questa dovrebbe essere la risposta accettata. – Chiara

6

Questo può essere causato da un'uscita che non esiste più (potrebbe essere stata rinominata o rimossa).

Ecco un suggerimento su come controllare le prese: Selezionare la vista del contenitore della presa sospetta, prestare attenzione a "!" segna nell'ispettore connessioni.

check constraints

0

ho avuto questa domanda, perché ho impostato [self addObserver:self forKeyPath:@"_defaultAgType" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:nil];, ma non ho rimosso in dealloc. Ho risolto questo problema con [self removeObserver:self forKeyPath:@"_defaultAgType"]; nella funzione dealloc.

0

Un altro motivo per cui potrebbe accadere è quando un elemento dell'interfaccia utente è stato dichiarato ma non è mai stato aggiunto allo schermo ma si tenta comunque di apportare modifiche.

Nel mio caso ho avuto un UIBarButtonItem dichiarato nel codice ma non l'ho mai aggiunto a View. Quando provo a rimuoverlo senza aggiungerlo, ho riscontrato questo problema.

0

Se è stato rinominato/spostato la classe controller della vista, assicurati di aver controllato Inherit Module From Target sull'Identità ispettore per la scena sullo storyboard

Inherit Module From Target

Problemi correlati