2012-02-03 10 views
9

Quindi ho incontrato un bel problema. Sembra che ASIHTTPRequest non voglia lavorare in una build di produzione.
Tutto funziona benissimo nel debug. Tuttavia, una volta creato per la produzione, il seguente codice non vuole essere eseguito. Non colpisce né il blocco completo né il fallimento. Ho anche provato a usare i selettori, con un delegato, ma anche quelli non vengono chiamati.ASIHTTPRequest non riesce nei build di produzione

__block __weak ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:URL]; 
[self performSelectorOnMainThread:@selector(startSpinner) withObject:nil waitUntilDone:NO]; 

[request setCompletionBlock:^{ 
    [self performSelectorOnMainThread:@selector(stopSpinner) withObject:nil waitUntilDone:NO]; 
}]; 

[request setFailedBlock:^{ 
    [self performSelectorOnMainThread:@selector(stopSpinner) withObject:nil waitUntilDone:NO]; 
}]; 

[request startAsynchronous]; 

So che è una specie di cattivo descrizione del mio problema, ma qualcuno ha la minima idea di quello che potrebbe causare questo problema?

risposta

22

Sembra che ci sia un errore in ASIHttpRequest, causando questo arresto anomalo durante l'esecuzione con ottimizzazioni della modalità di rilascio.

Che cosa ha funzionato per me è lo spegnimento di ottimizzazione per i 2 file seguenti: ASIFormDataRequest.m ASIHTTPRequest.m

A tale scopo, la selezione del progetto di destinazione, selezionare il file nella sezione "Compila fonti" della Scheda "Fasi di costruzione"; e aggiungi -O0 (maiuscolo zero).

Si può leggere di più su di esso here

+0

Grazie mille. – endy

+0

Infatti, grazie grazie! – cheeesus

+1

Come aggiungere più flag? Ho bisogno di aggiungere questo flag -fno-objc-arc per abilitare il lavoro in ARC anche tu hai detto che devo aggiungere questo flag -O0 per abilitare il lavoro in modalità di rilascio, come posso aggiungere 2 flag? – Abo3atef

Problemi correlati