我有点卡住了,希望有人能指出我正确的方向。我有一个存储序列的NSMutableArray。我创建了一个枚举器,以便while循环可以逐个获取数组的内容。
一切正常,但是我希望在每次调用之间以10秒的间隔调用方法。现在,它可以一次全部播放(或快速播放)。我应该怎么看才能在方法调用之间造成延迟?
以下是到目前为止我得到的。谢谢!
NSEnumerator * enumerator = [gameSequenceArray objectEnumerator];
id element;
while(element = [enumerator nextObject])
{
NSLog(element);
int elementInt = [element intValue];
[self.view showButton:elementInt];
}
最佳答案
几乎可以肯定,您不想在循环中添加“延迟”,这会阻塞线程直到结束(并且,除非您的应用程序是多线程的,否则会阻塞整个过程)。您可以使用多个线程,但是相反,我可能会将循环拆分为另一个选择器的重复定时调用。存储枚举数(或当前索引),然后查看NSObject的performSelector:awithObject:afterDelay:
所以像
[NSObject performSelector:@selector(some:selector:name:) withObject:objInstance afterDelay: 10]
选择器将在其中拾取当前的枚举器,使用它,将其前进并安排另一个 call 。确保在这套定时方法执行期间不允许更改集合。
关于ios - 定时循环结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/365719/