iOS上的计时器不起作用

时间:2012-08-31 19:55:42

标签: ios timer

我正在尝试自己做一个计时器,但它不起作用。似乎每次重复都没有,任何人?它适用于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 ++;                
}

2 个答案:

答案 0 :(得分:3)

问题是你每次执行timer方法时重新声明test并为其分配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++;
}

答案 1 :(得分:0)

你在int test = 1;

中忘了“静态”
static int test = 1;

你应该感到高兴。