【发布时间】:2013-06-24 13:21:55
【问题描述】:
我想在标签中显示实时,我找到了两种更新NSDate的方法:
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的成本很高。创建一次并重复使用。
标签: objective-c nsdate nstimer