我想让不同的东西每 2 秒出现一次,比如 10 次。我将如何在 Objective-C 中实现这一目标?
我正在考虑使用 NSTimer 并在这么多秒后使其无效,例如在上面的示例中,在我启动计时器后 2 * 10 秒。或者有没有办法测量蜱虫?
或者我正在考虑使用 for 循环并使用 performSelector:withDelay: 方法。
哪个更可取?
我想让不同的东西每 2 秒出现一次,比如 10 次。我将如何在 Objective-C 中实现这一目标?
我正在考虑使用 NSTimer 并在这么多秒后使其无效,例如在上面的示例中,在我启动计时器后 2 * 10 秒。或者有没有办法测量蜱虫?
或者我正在考虑使用 for 循环并使用 performSelector:withDelay: 方法。
哪个更可取?
使用NSTimer并将时间设置interval
为2 seconds
和。repeats
YES
计算它触发的次数。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 ++;
}
}
我用了你的第二个选项,不需要计时器
for (int a=0; a<10; a++) {
[self performSelector:@selector(print) withObject:nil afterDelay:2.0*a];
}
-(void)print
{
NSLog(@"sth");
}
您可以使间隔和重复计数灵活。