ios - 定时循环结果

标签 ios objective-c iphone cocoa-touch

我有点卡住了,希望有人能指出我正确的方向。我有一个存储序列的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/

相关文章:

ios - 在 WatchKitExtension 中混合 swift 和 objective-c

ios - Swift,如何将字典拆分为 60kb 的 block ?

ios - 即使设置了 contentSize,UIScrollView 也不会滚动

iphone - 如何在 iOS 钥匙串(keychain)中添加另一个密码?

ios - 通过 UIToolBar 的 UIBarButtonItem 在 iOS13 上不显示

ios - 如何使用 “Charts” 创建空标签?

objective-c - 客观的: @synchronized how does it work [duplicate]

iphone - 使用 drawRect 绘制 NSString 并为其设置动画

ios - 我可以将 iOS 应用程序限制在美国特定州吗?例如 - 应用程序只能在纽约州下载

iphone - UIKit 字符串绘制方法中的错误?