我想在我的应用中创建一个时间计数器,向用户显示应用运行当前会话的时间和总计。如何创建此类时间计数器以及如何将值保存到手机中?我是应用开发的新手。
答案 0 :(得分:3)
您可以使用NSDate
和NSDateFormatter
类。
以下是一个例子:
在.m文件中声明一个NSDate实例:
@implementation MyClass
NSDate *startDate;
BOOL stopTimer = NO;
//...
-(void) showElapsedTime: (NSTimer *) timer {
if(!startDate) {
startDate = [NSDate date];
}
NSTimeInterval timeSinceStart = [[NSDate date] timeIntervalSinceDate:startDate];
NSDate *newDate = [[NSDate alloc] initWithTimeInterval:timeSinceStart sinceDate:startDate];
NSString *dateString = [NSDateFormatter localizedStringFromDate:newDate dateStyle: NSDateFormatterNoStyle timeStyle: NSDateFormatterShortStyle];
//do something with dateString....
if(stopTimer) {//base case
[timer invalidate];
}
[newDate release];
}
- (void) startPolling {
[NSTimer scheduledTimerWithTimeInterval:0.09f target:self selector:@selector(showElapsedTime:) userInfo:nil repeats:YES];
}
//...
@end
答案 1 :(得分:2)
在iPhone上,您可以使用API CFAbsoluteTimeGetCurrent()
获取当前日期和时间的数值。您可以调用两次并相互减去两个数字,以获得这些调用之间经过的时间。然后,您可以保存程序执行之间经过的时间,以节省用户运行程序的总时间。