iOS Timer循环,每隔X分钟执行一次特定操作

时间:2014-03-12 01:49:04

标签: ios iphone objective-c timer nstimer

我试图每隔x个时间执行一段代码,但似乎我正在做的就是在那段时间内执行它。这是我的代码块。

while (TRUE) {
    NSTimer *countDown = [NSTimer
                       scheduledTimerWithTimeInterval:(x)
                       target:self
                       selector:@selector(timerHandle)
                       userInfo:nil
                       repeats:YES];

}

关于如何做的任何想法?

2 个答案:

答案 0 :(得分:4)

如上所述,这是一个无限循环,每次循环迭代都会创建NSTimer

在没有while循环的情况下尝试一下。这应该导致[self timerHandle]在单个后台线程/计时器的间隔x上调用{{1}}。 Apple指南使用NSTimer(包括其他人指出,如何正确停止您的定时任务)是here

答案 1 :(得分:4)

试试这个:(它会每5秒调用executeMethod

if (![NSThread isMainThread]) {

    dispatch_async(dispatch_get_main_queue(), ^{
        [NSTimer scheduledTimerWithTimeInterval:5.0
                                         target:self
                                       selector:@selector(executeMethod)
                                       userInfo:nil
                                        repeats:YES];
    });
}
else{
    [NSTimer scheduledTimerWithTimeInterval:5.0
                                     target:self
                                   selector:@selector(executeMethod)
                                   userInfo:nil
                                    repeats:YES];
}

使用executeMethod方法编写要执行的代码。希望这有助于.. :))