2012-02-03 29 views
9

Więc napotkam na duży problem. Wygląda na to, że ASIHTTPRequest po prostu nie chce pracować w kompilacji produkcyjnej.
Wszystko działa doskonale w debugowaniu. Jednak po zbudowaniu do produkcji poniższy kod po prostu nie chce działać. Nie trafia on ani w komplet, ani w nieudany. Próbowałem również używać selektorów, z delegatem, ale te też nie są wywoływane.ASIHTTPRequest kończy się niepowodzeniem w wersjach produkcyjnych

__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]; 

Wiem, że to jest zły opis mojego problemu, ale czy ktoś ma najmniejszą wskazówkę, co może spowodować ten problem?

Odpowiedz

22

Wygląda na to, że wystąpił błąd w ASIHttpRequest, powodując tę ​​awarię podczas uruchamiania z optymalizacją w trybie wydania.

Co pracował dla mnie jest wyłączenie optymalizacji dla 2 następujących plików: ASIFormDataRequest.m ASIHTTPRequest.m

Można to zrobić wybierając plan docelowy, wybierz plik w dziale „Kompilacja źródeł” z Zakładka "Build Phases"; i dodaj -O0 (capitol O zero).

Możesz przeczytać więcej na ten temat here

+0

Dziękuję bardzo. – endy

+0

Rzeczywiście, dziękuję, dziękuję! – cheeesus

+1

Jak dodać wiele flag? Muszę dodać tę flagę -fos-objc-arc, aby umożliwić pracę w ARC również powiedziałeś, że muszę dodać tę flagę -O0, aby umożliwić pracę w trybie zwolnienia, jak dodać 2 flagi? – Abo3atef

Powiązane problemy