Bri*_*yle 1 objective-c nstimer ios
我想每500毫秒执行一段代码,总共10秒钟.我用这段代码每半秒执行一次代码
[NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(getLevel:) userInfo:nil repeats: YES];
Run Code Online (Sandbox Code Playgroud)
但我似乎无法弄清楚如何在10秒后停止执行."重复"参数似乎不允许指定的时间.有人能指出我应该去哪里的方向吗?
谢谢Brian
你需要invalidate在NSTimer上发出scheduleTimerWithTimeInterval:target:selector:userInfo:repeats:给你的消息.例如,在类的属性或iVar中分配方法返回给你的NSTimer,并在10秒后调用invalidate它.
例:
.H:
@interface myClass{
NSTimer *myT;
}
[...]
Run Code Online (Sandbox Code Playgroud)
.M:
[...]
{
myT = [NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(getLevel:) userInfo:nil repeats: YES];
[NSTimer scheduledTimerWithTimeInterval:10 target:self selector:@selector(stop) userInfo:nil repeats:NO];
}
-(void)stop{
[myT invalidate];
}
[...]
Run Code Online (Sandbox Code Playgroud)
NSTimer如果你想通过实现某种finish标志并跟踪你向该getLevel方法发送的次数,你可以避免另一种,因为它是每0.5秒,这将是20次.
但我宁愿使用2个NSTimer物体,因为你知道它是10秒而不管其他计时器,你可能决定改变它,频率上升或下降......
| 归档时间: |
|
| 查看次数: |
2888 次 |
| 最近记录: |