我已经实施了NSTtimer
,并且工作正常。我还将时间间隔参数连接到UISlider
的{{1}}。但是,当我更改它的值时,iPhone
仍然以原始时间间隔运行,它不会更新。我如何实现NSTimer
并让其更改时间间隔,因为NSTimer
的值会发生变化。以下是我用于UISlider
的行。
NSTimer
我希望它能够使用[NSTimer scheduledTimerWithTimeInterval:mySlider.value
target:self
selector:@selector(myMethod)
userInfo:nil
repeats:YES];
的值不断更新时间间隔。
答案 0 :(得分:6)
你不能害怕。使用以下内容使其无效:
[myTimer invalidate];
然后用新时间创建一个新的。您可能还必须先将其设置为nil。
myTimer = nil;
myTimer = [NSTimer scheduledTimerWithTimeInterval:mySlider.value
target:self
selector:@selector(myMethod)
userInfo:nil
repeats:YES];
答案 1 :(得分:0)
你可以使用GCD做这样的事情
NSTimeInterval timeInterval=1;
BOOL timerInvalidate=NO;
dispatch_async(dispatch_get_global_queue(0, 0),
^{
while (!timerInvalidate){
dispatch_async(dispatch_get_global_queue(0, 0),
^{
//your code;
});
[NSThread sleepForTimeInterval:timeInterval];
}
});
并从代码中的else处更改timeInterval的值。