不允许在Web线程上进行多次锁定!请提交一个错误。现在崩溃了

时间:2011-11-07 13:55:43

标签: objective-c nsurlconnection nsrunloop

我做了一个网址 - 请求并等待

的答案

我启动请求,然后等到synchronousOperationComplete = TRUE

NSRunLoop *theRL = [NSRunLoop currentRunLoop];

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

然后我返回响应

一切似乎都没问题,我得到了回复,一切正常,但是当我关闭应用程序时 我明白了:

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

似乎是NSRunLoop导致错误的原因, 当我推荐它时,错误不会出现。

我使用的是IOS 5.0 有人知道我可以做些什么来避免这个错误吗?

我在IOS 4.3和IOS5 Beta中使用它,它工作正常。

但我将我的tomcat6移动到另一台服务器,也许这是服务器的错误

THX mBax

3 个答案:

答案 0 :(得分:3)

我只是有相同的错误消息,但我试图在屏幕上没有的webView上调用stringByEvaluatingJavaScript。

一般情况下,此消息暗示某些内容正在尝试访问项目(UIWebView),而此项目的特定线程已被锁定。

答案 1 :(得分:2)

如果您使用了以下代码:

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

如果不需要,请将其删除,或缩短时间间隔。它对我有用。

答案 2 :(得分:0)

对我来说,这是一个在

上添加的视图
- (void)applicationDidEnterBackground:(UIApplication *)application{}

我赞扬了它,现在它已经开始了!

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

如果有人有同样的错误,

可能有帮助