我刚接触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;
}
感谢能指引我正确方向的任何事情。
答案 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];