2

自分でタイマーを作ろうとしていますが、うまくいきません。繰り返すたびにゼロになるようです、誰か?OS X では動作しますが、iOS では動作しません。

ワーキングループメソッドが必要なだけです-何か提案はありますか?

ヘッダ:

@interface ViewController : UIViewController
@property (strong, nonatomic) IBOutlet UILabel *timerOutlet;
- (void)timer:(id)sender;
@end

実装:

@synthesize timerOutlet;

- (void)viewDidLoad
{
    [super viewDidLoad];
    started = TRUE;
    [self timer:nil];
}

- (void)timer:(id)sender {
    int test = 1;
    NSString *number = [NSString stringWithFormat:@"%i",test];
    timerOutlet.text = number;
    [self performSelector:@selector(timer:) withObject:Nil afterDelay:1.0];
    test ++;                
}
4

2 に答える 2

3

test問題は、timerメソッドが実行されるたびに再宣言して1を割り当てることです。したがって、宣言を省略してtestインスタンス変数を作成するか、作成する場合staticは、それが役立つはずです。ただし、それとは別に、フレームワークをレイプするのではなく、実際にはNSTimerオブジェクトを使用する必要があります。

- (void)viewDidLoad
{
    [super viewDidLoad];
    started = TRUE;
    test = 1;
    [NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(timer:) userInfo:nil repeats:YES];
}

- (void)timer:(id)sender {
    NSLog(@"%i",test);
    test++;
}
于 2012-08-31T20:02:15.223 に答える
0

int test=1で「静的」を忘れました。

static int test = 1;

そしてあなたは幸せでなければなりません。

于 2012-08-31T20:04:21.387 に答える