如何调用a.s.a.p方法 但是最早要在下一个运行循环迭代中进行?

我需要一种保存的方式说:“ iOS,我希望此方法尽快执行,但不要在此运行循环迭代中使用。最早在下一次,但请不要在此 一个,谢谢。”

目前,我总是这样:

[self performSelector:@selector(doSomethingInNextRunLoop) withObject:nil afterDelay:0];
[self doSomeOtherThings];

假设 -doSomeOtherThings 将始终在执行之前执行 -doSomethingInNextRunLoop

文档说:

将延迟指定为0不一定会使选择器成为 立即执行。 选择器仍在线程的队列中排队 运行循环并尽快执行。

因此,基本上可能发生该方法立即被调用,就好像我刚刚发送了一条直接消息一样,导致 -doSomethingInNextRunLoop 之前执行- doSomeOtherThings

我如何绝对确定它将尽快被称为 但是从来没有在同一次运行循环迭代中进行过吗?

要澄清措辞:使用运行循环,我指的是主线程,以及其中所有方法都必须返回直到线程再次为新事件准备就绪的迭代。

16
задан openfrog 17 August 2011 в 16:22
поделиться