HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了iphone – 如何调用方法a.s.a.p.但是最早在下一次运行循环迭代?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要一个保存的方式来说:“iOS,我希望这个方法被执行a.s.a.p.,但不是在这个运行循环迭代.最早在下一个,但不要在这一个,谢谢.

现在我一直这样做:

[self performSELEctor:@SELEctor(doSomethingInNextRunLoop) withObject:nil afterDelay:0];
[self doSomeOtherThings];

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

文件说:

所以基本上可能会发生这种方法立即被调用,就好像我刚刚发送了一条直接的消息,导致-doSomethingInNextRunLoop在-doSomeOtherThings之前执行?

我怎么能绝对确定它会被称为a.s.a.p.但从来没有在这个相同的运行循环迭代?

澄清措辞:使用运行循环我的意思是主线程和所有方法必须返回直到线程再次准备新的事件的迭代.

解决方法

如果你担心苹果有可能在特殊情况下延迟0,那么你总是可以指定延迟1e-37左右.尽管可以轻松阅读 performSelector:withObject:afterDelay:的文档,以确保选择器将始终安排在下一次运行循环迭代中.

如果您担心苹果有可能在某种特定情况下延迟低于某些任意下限,那么您可以随时尝试使用NSRunLoop的performSelector:target:argument:order:modes:,该文档明确指出将为运行循环的下一次迭代调度执行.

大佬总结

以上是大佬教程为你收集整理的iphone – 如何调用方法a.s.a.p.但是最早在下一次运行循环迭代?全部内容,希望文章能够帮你解决iphone – 如何调用方法a.s.a.p.但是最早在下一次运行循环迭代?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。