2011-11-07 9 views
6

faccio un URL di richiesta e in attesa per la risposta conNon sono consentiti più blocchi sul thread Web! Si prega di presentare un bug. Crashing ora

comincio la richiesta, quindi in attesa fino a quando synchronousOperationComplete = TRUE

NSRunLoop *theRL = [NSRunLoop currentRunLoop]; 

while (!synchronousOperationComplete && [theRL runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]]); 

poi ho restituito la risposta

tutto sembra va bene, ottengo la risposta e tutto funziona normalmente, ma quando chiudo l'app ottengo:

bool _WebTryThreadLock(bool), 0x227f40: Multiple locks on web thread not allowed! Please file a bug. Crashing now... 

1 _ZL17_WebTryThreadLockb 
2 _ZL14WebRunLoopLockP19__CFRunLoopObservermPv 
3 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ 
4 __CFRunLoopDoObservers 
5 __CFRunLoopRun 
6 CFRunLoopRunSpecific 
7 CFRunLoopRunInMode 
8 _ZL12RunWebThreadPv 
9 _pthread_start 
10 thread_start 

sembra essere il NSRunLoop che cosa causa l'errore, quando lo elogio l'errore non viene visualizzato.

Io uso IOS 5.0 qualcuno ha la più pallida idea di cosa posso fare per evitare questo errore?

ho usato questo in IOS 4.3 e IOS5 Beta e funziona bene.

ma ho spostato il mio tomcat6 a un altro server, forse è un errore del server

THX mBax

+1

Espandi NSRunLoop * theRL = [NSRunLoop currentRunLoop]; linea perché non è chiaro cosa stai facendo dopo. – Max

risposta

0

Per me è stata una visione che è stato aggiunto il

- (void)applicationDidEnterBackground:(UIApplication *)application{} 

l'ho elogiato e ora funziona!

https://devforums.apple.com/message/575760#575760

può aiutare se qualcuno ha lo stesso errore

+1

Grazie per aver risposto alla propria domanda..Per fortuna risposta –

3

Ho appena avuto lo stesso messaggio di errore, ma ho cercato di chiamare uno stringByEvaluatingJavaScript su una WebView che non era sullo schermo.

In generale questo messaggio suggerisce che qualcosa sta tentando di accedere a un elemento (UIWebView) mentre il thread specifico di questo elemento è bloccato.

+0

sì, è successo su ios8. – Maq

2

Se avete usato il seguente codice:

[[NSRunLoop currentRunLoop] runUntilDate: [NSDate dateWithTimeIntervalSinceNow: 2.0]];

Rimuovere se non necessario o ridurre l'intervallo di tempo. Ha funzionato per me.

+0

rimozione [[NSRunLoop currentRunLoop] runUntilDate: ...] ha funzionato anche per me. – Maq