调用NSTimer方法

时间:2010-06-22 03:35:05

标签: ios iphone objective-c nstimer

我刚接触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;
}

感谢能指引我正确方向的任何事情。

2 个答案:

答案 0 :(得分:2)

在你的方法中,你不使用计时器变量吗?那么,为什么只要拨打[self updateTime:nil]。这应该工作

答案 1 :(得分: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];