NSTimer如果语句未正确运行

时间:2012-07-15 19:57:35

标签: xcode cocoa if-statement nstimer

我想要一个按钮“getcoins”来启动一个定时器然后触发一个if语句,这样如果“_ currentField”//文本字段的值大于或等于1000,则运行我编写的代码行。如果是其他任何东西,那么运行其他代码行。每次我运行此应用程序并尝试执行该操作时,它都会运行调试器并突出显示if语句的第一行。我做错了什么?

- (IBAction)getcoins:(id)sender {
        [_progIndicator startAnimation:(id)sender];
        [NSTimer scheduledTimerWithTimeInterval:5.0
                                         target:self
                                       selector:@selector(onTimer:)
                                       userInfo:nil
                                        repeats:YES];

}
// Timer for get coins
- (void)onTimer:(NSTimer*)aTimer {

    if ([_currentField.stringValue integerValue] >= 1000)

    {
        [_congrats orderFront:(id)self];
        [_progIndicator stopAnimation:(id)self];
    }

    else { 
        [_errormsg orderFront:(id)self];
        [_progIndicator stopAnimation:(id)self];

        }

    }

1 个答案:

答案 0 :(得分:0)

尝试以下方法:

- (IBAction)getcoins:(id)sender {
    [_progIndicator startAnimation:(id)sender];
    [NSTimer scheduledTimerWithTimeInterval:5.0
                                     target:self
                                   selector:@selector(onTimer)
                                   userInfo:_nil
                                    repeats:YES];

}
// Timer for get coins
- (void)onTimer:(NSTimer*)aTimer {

    if ([_currentField.stringValue integerValue] >= 1000)

    {
        [_congrats orderFront:self];
        [_progIndicator stopAnimation:self];
    }

    else { 
        [_errormsg orderFront:self];
        [_progIndicator stopAnimation:self];

        }

    }