5

我是使用计时器的新手,iPhone需要一些支持。

我有一个方法如下,它需要时间并UILabel在我的userinterface. 我也有NSTimer一个每秒调用一次该方法的方法(我只显示小时和分钟)。timer这工作得很好,除了应用程序处于活动状态的第一秒(据我所知,在调用该方法之前需要一秒钟)。

我想从 调用我的方法viewDidLoad,但我怎样才能提供正确的参数?或者有没有更好的方法来做到这一点?

// Timer for updating time
[NSTimer scheduledTimerWithTimeInterval:1.0f 
                                 target:self 
                               selector:@selector(updateTime:) 
                               userInfo:nil 
                                repeats:YES];   


-(void)updateTime: (NSTimer *) timer {

    currentTime = [NSDate date];
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    // display in 12HR/24HR (i.e. 11:25PM or 23:25) format according to User Settings
    [dateFormatter setTimeStyle:NSDateFormatterShortStyle];
    NSString *currentTimeString = [dateFormatter stringFromDate:currentTime];
    [dateFormatter release];

    timeLabel.text =  currentTimeString;
}

感谢任何可以为我指明正确方向的东西。

4

2 回答 2

2

在您的方法中,您不使用 timer 变量吗?那么,为什么只调用[self updateTime:nil]. 那应该工作

于 2010-06-22T04:12:41.717 回答
2

另一种选择......你可以这样做:

[NSTimer scheduledTimerWithTimeInterval:0.01f 
                                 target:self 
                               selector:@selector(updateTime:) 
                               userInfo:nil  
                                repeats:NO];    

[NSTimer scheduledTimerWithTimeInterval:1.0f 
                                 target:self 
                               selector:@selector(updateTime:) 
                               userInfo:nil 
                                repeats: YES];
于 2010-06-22T04:32:15.710 回答