參考:IOS - performSelector:withObject:afterDelay:不工作
https://stackoverflow.com/a/14741253/1749293
像上面的鏈接說,但它似乎並沒有解釋原因。
在我的代碼,下面的工作:
dispatch_async(dispatch_get_main_queue(), ^{
[self performSelector: @selector(helloWorld) withObject:nil afterDelay:0.5];
});
但是,當我的評論是這樣的,(我真的相信,我在主線程中運行它!)代碼不工作:
// dispatch_async(dispatch_get_main_queue(), ^{
[self performSelector: @selector(helloWorld) withObject:nil afterDelay: 0.5];
// });
有人可以告訴我爲什麼嗎? AND'自我',將nerver釋放/釋放,我保留它,直到應用程序結束。
「不工作」,這意味着,(無碰撞),它不會跳進「HelloWorld」的方法:
-(void) helloWorld {
NSLog(@"hello world"); // I set a break point here for debug , it wouldn't pause forever
}
我認爲是運行循環導致此問題。像this link說的,但我需要更多的細節或更明確的解釋。
如果確實在主線程中,那很奇怪。爲什麼你不使用'dispatch_after()'的任何特定原因? – 2013-06-06 07:41:13
什麼是BROKER.actors.event? – manujmv
在第一個代碼中,您在使用'BROKER.actors.event'的時候使用'self'。那麼你確定他們指的是同一件事嗎? – sunkehappy