objective-c - 在一段时间内执行 “if” 条件,然后在另一段时间内停止并重复?

标签 objective-c ios xcode

<分区>

Possible Duplicate:
Execute an “if” condition “x” milliseconds and stop for “y”millisecond and repeat the condition ?

我有一个程序在程序运行期间连续测试 if 循环内的条件。但我希望这个 if 条件在一段时间内变为真或激活(比如 5 毫秒),然后在接下来的 10 毫秒内停用 if 条件。然后继续这个模式直到用户关闭程序!

最佳答案

虽然听起来您真的应该采取不同的方法,但这是您问题的字面答案:

while ( YES )
{
    NSTimeInterval t = [NSDate timeIntervalSince1970];
    long ms = t*1000;
    if ( ms % 15 < 5 )
    {
       // code here is executed for 5 ms in every 15 ms timewindow
    }
}

此循环将非常不利于应用性能和电池生命周期。

根据必须执行“5 毫秒,每 15 毫秒”的代码类型,您可以改用 NSTimer:

[NSTimer scheduledTimerWithTimeInterval:0.015 target:self
         selector:@selector(fire) userInfo:nil repeats:YES];

用一个方法:

-(void)fire
{
    // called every 15 ms, does something for 5 ms.
}

关于objective-c - 在一段时间内执行 “if” 条件,然后在另一段时间内停止并重复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10850945/

上一篇:ios - 在帧 ios 内移动图像

下一篇:iphone - CLLocationManager 回调 (locationManager :didUpdateToLocation:fromLocation and locationManager:didFailWithError:) never called

相关文章:

objective-c - 如何在iOS应用程序上显示Facebook用户的新闻提要?

ios - 如何在 Swift 中获取 DatePicker 时间到 Calendar 组件并插入到 Label 组件

objective-c - 滚动到底部时向 UITableView 添加行

ios - 如何从匹配 NSNumber 的 NSMutableArray 中删除对象

iphone 开发 : how can I inherit from more than one class?

ios - 将 NSData 初始化为 nil SWIFT

用于处理内部重定向到 HTTP 连接的 iOS ATS 配置

Xcode 7 beta 3 在启动时崩溃

ios - flutter ——iOS;应用程序已运行但无法存档

ios - SIGABRT错误-恰好在第三次运行之后(iPhone和iPad模拟器)