也许一位Iphone Guru可以启发我......
我一直在逐行排除使用UIKit的任何线程调用/ NSInvocation,事实上,我已经100%确定从除MainThread IE之外的任何其他地方调用NO UIKit垃圾. .
if([NSThread isMainThread])
{
blah....
Call UIKit Crap here!
and blah....
}
Run Code Online (Sandbox Code Playgroud)
到目前为止一切都那么好,但是在我创建了一个线程来做一个http POST(使用LibCurl)后,我开始得到这个:
"void _WebThreadLockFromAnyThread(bool),0x4d7bbe0:从主线程或Web线程以外的线程获取Web锁定.不应该从辅助线程调用UIKit."
喜欢WTF ......?我甚至不能使用Thread中的Curl来进行网络密集型操作..?我只是把这个该死的东西从主线上移开,以符合他们(Apple的)UIKit的严格要求,"不要叫任何UIKit垃圾,除了主线......周期或其他!!!"
所以我将"UiAlertView&UIActivityIndicator"移回主线程(之前没有错误消息)并创建一个线程来执行curl POST操作......现在我已经遵从了,然后突然间,我开始得到这条信息...?
任何人都可以解释我想把这个网络密集型操作放在哪里,顺便说一下,这会导致任何UIActivity Indicator/UIAlertView的内容冻结......
提前致谢...
[我只是穿着羊皮的linux程序员]