我有一个选择器和目标,并调用像这样的方法
[target performSelectorOnMainThread:(SEL)selector withObject:nil waitUntilDone:FALSE];
但在我将其更改为此后,它无法正常工作
[target performSelector:(SEL)selector withObject:nil afterDelay:0];
有什么想法吗?
我不想在主线程上执行该任务,因为它滞后于UI。
通过不起作用我的意思是它根本不调用该方法。我在模拟器中有im debu模式,并确认它没有被调用。
答案 0 :(得分:11)
我假设您从主线程以外发送消息。 Cocoa只是为主线程构建一个运行循环,对于你自己构建一个线程的其他线程。方法performSelector:withObject:afterDelay:
为下一次运行循环的传递调度消息。因此,如果没有,则不会发送消息。
对于您的情况,为什么不发送[target performSelector:selector withObject:nil];
?你不需要一个运行循环,消息将立即发送(在同一个线程上)。