iOS执行循环直到满足指定时间的特定条件?

标签 ios infinite-loop

正如标题所述,我有一个 while 循环,它将执行直到满足特定条件,或者直到 5 秒过去。

解决这个问题的最佳方法是什么?我看过一些关于 NSTimer 的简单教程,但在我看来,在 NSTimer 中触发的选择器无论如何都会在指定的时间间隔后执行。我只需要在不满足条件时执行它...

最佳答案

只需创建一个 NSTimer 计划操作来存储计时器,如果您达到了想要实现的目标,请停用此计时器,这样它就不会触发该操作。

基本上:

 NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:10 target:self selector:@selector(yourAction) userInfo:nil repeats:NO];

 some code

//for deactivating the timer
[timer invalidate];
timer = nil;

您可以使用以下命令在主线程上启动 NSTimer(以确保上述代码正常工作):

[self performSelectorOnMainThread:@selector(startTimerMethod) withObject:someOrNoObject waitUntilDone:NO];

关于iOS执行循环直到满足指定时间的特定条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12299446/

相关文章:

c - 无限循环和带有 : while (chars = fgetc(map) ! = EOF 的奇怪字符)

c++ - 我知道在哪里看,也许这是一个无限循环? (C++, 使用 VS2012)

ios - UITableViewCell 标签不需要的缩进

objective-c - 核心数据 : Traverse managed objects relationships with an abstract entity in-between

ios - 在 TableView Xamarin.iOS 中删除部分索引

javascript - 如何在无限循环中重用数组函数

angularjs - $http 拦截器导致无限循环

ios - 将多个数组相加形成一个最终数组。调试问题,Swift Xcode

ios - 如何将核心数据堆栈添加到 WatchKit 应用程序

go - 是什么导致 golang 程序处于 100% CPU?