0

ボタン「getcoins」でタイマーを開始し、if ステートメントをトリガーして、「_currentField」 //text フィールドの値が 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];

        }

    }
4

1 に答える 1

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];

        }

    }
于 2012-07-15T20:33:17.580 に答える