3

我想让不同的东西每 2 秒出现一次,比如 10 次。我将如何在 Objective-C 中实现这一目标?

我正在考虑使用 NSTimer 并在这么多秒后使其无效,例如在上面的示例中,在我启动计时器后 2 * 10 秒。或者有没有办法测量蜱虫?

或者我正在考虑使用 for 循环并使用 performSelector:withDelay: 方法。

哪个更可取?

4

2 回答 2

7

使用NSTimer并将时间设置interval2 seconds和。repeatsYES

计算它触发的次数。Invalidate 当它达到10时。就是这样

代码:

[NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(trigger:) userInfo:yourObject repeats:YES];

- (void)trigger:(NSTimer *)sender{

    id yourObject = sender.userInfo;

    static int count = 1;

    @try {

        NSLog(@"triggred %d time",count);

        if (count == 10){

            [sender invalidate];
            NSLog(@"invalidated");
        }

    }
    @catch (NSException *exception)
    {
        NSLog(@"%s\n exception: Name- %@ Reason->%@", __PRETTY_FUNCTION__,[exception name],[exception reason]);
    }
    @finally {

        count ++;
    }
}
于 2013-03-14T18:25:01.890 回答
3

我用了你的第二个选项,不需要计时器

for (int a=0; a<10; a++) {
    [self performSelector:@selector(print) withObject:nil afterDelay:2.0*a];
}


-(void)print
{
    NSLog(@"sth");
}

您可以使间隔和重复计数灵活。

于 2013-03-14T19:21:10.713 回答