我想在標籤中顯示的實際時間,我發現兩種方法來更新NSDate
:使用NSTimer或performSelector在iOS更新中構建實時時鐘?
的performSelector
方法:
- (void)viewDidLoad
{
[super viewDidLoad];
[self updateTime];
}
- (void)updateTime
{
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"hh:mm:ss"];
label.text = [dateFormat stringFromDate:[NSDate date]];
//call updateTime again after 1 second
[self performSelector:@selector(updateTime) withObject:self afterDelay:1.0];
}
的NSTimer
方法:
- (void)viewDidLoad
{
[super viewDidLoad];
Timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(updateTime) userInfo:nil repeats:YES];
}
- (void)updateTime
{
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"hh:mm:ss"];
label.text = [dateFormat stringFromDate:[NSDate date]];
}
哪一個更好,更高效和可靠的方法?
創建'NSDateFormatter'非常昂貴。創建一次並重用它。 –