我创建了一个自定义类,用于显示时间日期格式化程序,并且需要类似计时器的方法来更新秒,所以这是我的代码:
CustomClass.m
- (NSString *) showLocaleTime {
NSDateFormatter *timeFormater = [[NSDateFormatter alloc] init];
timeFormater = [setDateFormat:@"HH:mm:ss "];
NSString *currDay = [timeFormater stringFromDate:[NSDate date]];
currDay = [NSString stringWithFormat:@"%@",currDay];
[timeFormater release];
return timer;
}
- (void) updateLocaleTime {
[NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(showLocaleTime) userInfo:nil repeats:YES];
}
viewController.m:
CustomClass *time = [[CustomClass alloc]init];
label.text = [time showLocaleTime];
[time updateLocaleTime];
但是问题是
updateLocaleTime
不调用以更新秒!我错过了什么吗?谢谢
最佳答案
无需在updateLocaleTime
中调用CustomClass
,只需在视图控制器本身中启动计时器即可。
[NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(updateLocaleTime) userInfo:nil repeats:YES];
将
updateLocaleTime
方法添加到viewController
- (void) updateLocaleTime {
CustomClass *time = [[CustomClass alloc]init];
label.text = [time showLocaleTime];
[time release];
}
但是在这里,我们每0.5秒一次又一次分配和释放
CustomClass
。而是在.h文件中将其声明为类成员,然后在viewDidLoad
中进行分配。因此,无需在
updateLocaleTime
方法中进行分配。还要在time
方法中释放该viewDidUnload
。