我创建了一个自定义类,用于显示时间日期格式化程序,并且需要类似计时器的方法来更新秒,所以这是我的代码:

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

10-08 08:45