Possible Duplicate:
How does -performSelector:withObject:afterDelay: work?
我经常使用这段代码让 UI 在调用长时间运行的方法之前完成其业务:
[obj performSelector:@selector(go) withObject:nil afterDelay:0];
但是它有什么作用?
我个人的解释一直是 go
方法在下一个运行循环中被调用,但这肯定是不对的。
最佳答案
延迟调用它0
确实会在下一次运行循环中调用此方法。
IIRC,它所做的是设置一个表示目标和操作的结构,并将一个 CFRunLoopSource
附加到运行循环,当触发时,将调用目标上的操作。然后它向运行循环发出信号,告诉它有一个就绪的源。这意味着下次运行循环处理其源代码(即下一次通过运行循环)时,它将执行延迟选择器。
关于ios - PerformSelector 延迟为 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14717691/