ios – 是否应将NSTimer添加到runloop中以执行

ios – 是否应将NSTimer添加到runloop中以执行,第1张

概述我没有明确地将定时器添加到runloop并且它工作得很好.有一天,当我读到一篇关于NSRunLoop的文章时,它说最好将一个NSTimer实例添加到runloop实例中来执行.我只是想知道如果我不这样做会有什么危害吗? 总是需要在运行循环上安排NSTimer实例才能正常运行.如果您是从主线程执行此 *** 作,则可以使用scheduleTimerWithTimeInterval,它将自动添加到主运行循环中 我没有明确地将定时器添加到runloop并且它工作得很好.有一天,当我读到一篇关于NSRunLoop的文章时,它说最好将一个NSTimer实例添加到runloop实例中来执行.我只是想知道如果我不这样做会有什么危害吗?解决方法 总是需要在运行循环上安排NSTimer实例才能正常运行.如果您是从主线程执行此 *** 作,则可以使用scheduleTimerWithTimeInterval,它将自动添加到主运行循环中,无需手动调用NSRunLoop方法addTimer.但是如果需要,您可以创建计时器并自行添加. scheduleTimerWithTimeInterval是一种方便的方法,只为您做到这一点.

如果从后台线程创建一个没有自己的运行循环的计时器(默认情况下,当您使用后台调度队列或 *** 作队列时,运行它的线程将没有自己的运行循环),然后,您必须手动将计时器添加到运行循环中.通常,人们只会将计时器添加到主运行循环中.

或者,如果你真的想要一个计时器在后台线程上运行,而不是为该线程创建一个运行循环并将计时器添加到新的运行循环,你可以使用GCD调度计时器,它不需要运行循环跑.有关Objective-C示例,请参阅https://stackoverflow.com/a/19996367/1271826.有关Swift示例,请参见https://stackoverflow.com/a/25952724/1271826.

因此,除非在后台线程中创建计时器,否则只需使用scheduledTimerWithTimeInterval,您不必担心手动将其添加到运行循环中.

总结

以上是内存溢出为你收集整理的ios – 是否应将NSTimer添加到runloop中以执行全部内容,希望文章能够帮你解决ios – 是否应将NSTimer添加到runloop中以执行所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1076077.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存