Segnale 11, errore di segmentazione in uscita applicazione per iPhone
-
13-09-2019 - |
Domanda
Ho un app iPhone. Sembra funzionare bene. Quando si collega ad un iphone provisioning per Xcode e eseguire l'applicazione, il log della console nella finestra Organizzatore, si lamenta sempre di un errore di segmentazione quando smettere l'applicazione con la chiave di casa.
Qualcun altro ha visto questo, e non si ha un'idea di ciò che il problema potrebbe essere? Uso un filo per caricare le pagine web nel backround, ma mi fermo il filo all'uscita.
La mia app fa risparmiare un po 'le informazioni persistente. Quando uso la costruzione e la funzione di analizzare ottengo circa 2 potenziali perdite di memoria, ma in ogni caso sto assegnando un oggetto e mantenendolo in un array.
Tutte le idee, o è normale?
Soluzione
Provare a eseguire l'applicazione con NSZombieEnabled. Questo vi dirà se siete più di rilasciare qualsiasi oggetto. Per abilitare zombie effettuare le seguenti operazioni:
- Scegli Progetto> Modifica Attivo eseguibile per aprire l'eseguibile info finestra.
- Fare clic Argomenti.
- Fare clic sul pulsante Aggiungi (+) nella sezione “Variabili da impostare nel la sezione ambiente”.
- Inserisci NSZombieEnabled nella colonna Nome e SI nella colonna Valore.
- Assicurarsi che sia selezionato il segno di spunta per i soggetti di entrata NSZombieEnabled.
Altri suggerimenti
Dopo l'uscita l'applicazione può over-rilasciare un oggetto di dumping provare ogni oggetto prima di rilasciarlo o fare un po 'di debug in modo dealloc.
Forse si stanno rilasciando un oggetto più volte che il suo conteggio conservare. Commentare le chiamate -release
nei vostri metodi dealloc
(o altrove) fino a trovare il colpevole.
Poi rimuovere il commento-out che chiamano e guardare altrove nel codice in cui si sta tentando di rilascio eccesso di quell'oggetto.
Se si utilizzano metodi di convenienza, per esempio, (ad esempio [NSString stringWithFormat:@"..."]
) rispetto al alloc-init
metodi (per esempio [[NSString alloc] initWithFormat:@"..."]
) l'oggetto convenienza risultante viene autoreleased e non deve essere sbloccato manualmente.
Il mio problema era uididfaker e locationholic da Cydia, e dopo la disinstallazione di loro corsa Xcode sul mio iphone bene.