NSTimer没有停止

时间:2014-08-31 20:21:23

标签: nstimer restart

我使用NSTimer(由旧问题引起,再次感谢你们,伙计们!:-))在一个间隔内刷新我的按钮。但是我无法阻止它!

我使用iOS 4.3作为我的最低版本。

无效无效。并且释放不适合我。

来源:

int i = 0;
NSTimer *t;
bool running = false;

- (void)UpdateButton
{
     if(!running)
{
NSTimer *t = [NSTimer scheduledTimerWithTimeInterval: 1
                                              target: self
                                            selector:@selector(onTick:)
                                            userInfo: nil
                                             repeats:YES];

    running = true;

}
else
{
    bool value = t.isValid;
    [t invalidate];
    t = NULL;
    t = nil;
}
}


-(void)onTick:(NSTimer *)timer
{
    UIView *view = viewButtons;

for(UIButton *btnItem in view.subviews)
{
    NSString *strValue = [@(i) stringValue];
    btnItem.backgroundColor = [UIColor lightGrayColor];
    [btnItem setTitle: strValue forState:UIControlStateNormal];
}
}

它工作正常,但它不会停止!!!

如何停止并启动NSTimer?

最好的问候

1 个答案:

答案 0 :(得分:0)

好的,我明白了。

我必须通过调度异步来包围它:

dispatch_async(dispatch_get_main_queue(), ^{
if (t.isValid)
    {
......