2013-04-01 14 views
7

Ogni volta che sto usando ASIHTTPRequest per effettuare chiamate webservice sto a caso ottenendo il seguente incidente:pagina piscina Autorelease danneggiato

autorelease pool page 0x9418000 corrupted 
    magic a1a1a100 4f545541 454c4552 21455341 
    pthread 0xb0103000 

mio codice è ARC-cato e utilizzato -fno-objc ad arco per i file .m della classe ASIHTTP.

Qualcuno ha un'idea di questo o qualcuno ha affrontato questo tipo di problema prima? Grazie in anticipo!

+1

Spero che sia '-fno-objc-arc' non' -fno -objc -arc' – newacct

risposta

3

Questo probabilmente indica che stai stomping la memoria da qualche altra parte. Comincerei attivando memory diagnostics e cercando errori. Il posto più probabile per causare questo tipo di errori è nel codice C, in particolare quando si usano array C o stringhe C. Probabilmente stai scrivendo fuori dalla tua memoria allocata, o scrivendo in memoria dopo averlo liberato.

Ci sono stati a volte compiler bugs che causano questo tipo di problema, ma questi sono molto rari, e sospetterei fortemente il tuo codice prima.

0

Come ha sottolineato Rob, questa è probabilmente un'indicazione che stai abusando della memoria altrove. Per attivare la diagnostica di gestione della memoria come da Xcode 8:

  • Fare clic sul menu schema in Xcode e selezionare "Modifica schema ..." in fondo.
  • Nel passaggio Esegui, andare alla scheda Diagnostica.
  • In Gestione memoria, attivare tutte e quattro le opzioni. Generalmente trovo la Guardia Malloc per scoprire la maggior parte dei problemi, ma possono essere tutti utili.