ios – dispatch_after循环/重复

前端之家收集整理的这篇文章主要介绍了ios – dispatch_after循环/重复前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想创建一个这样的循环:

while (TRUE){
  dispatch_after(...{
    <some action>
  });
}

在viewDidLoad之后.我的想法是重复重复dispatch_after. dispatch_after在执行操作之前等待两秒钟.

这不起作用 – 屏幕只是空白?它是否陷入循环或……?

解决方法

无论何时计划运行,dispatch_after(…)调用都会立即返回.这意味着你的循环在调度它们之间不会等待两秒钟.相反,你正构建一个从现在起两秒钟内发生的无限队列,而不是彼此之间的两秒钟.

所以是的,你被困在一个无限循环中,即添加越来越多的块来执行.如果你想要每两秒钟发生一次事情,那么你可以使用重复的NSTimer或者在其内部使用块dispatch_after(以便第二个块在第一个块之后运行两秒钟).

猜你在找的iOS相关文章