【发布时间】:2012-05-05 20:41:33
【问题描述】:
我在这里尝试计算两个日期之间的小时数。当我运行应用程序时,它崩溃了。你能告诉我这段代码中的错误吗?
NSString *lastViewedString = @"2012-04-25 06:13:21 +0000";
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat: @"yyyy-MM-dd HH:mm:ss zzz"];
NSDate *lastViewed = [[dateFormatter dateFromString:lastViewedString] retain];
NSDate *now = [NSDate date];
NSLog(@"lastViewed: %@", lastViewed); //2012-04-25 06:13:21 +0000
NSLog(@"now: %@", now); //2012-04-25 07:00:30 +0000
NSTimeInterval distanceBetweenDates = [now timeIntervalSinceDate:lastViewed];
double secondsInAnHour = 3600;
NSInteger hoursBetweenDates = distanceBetweenDates / secondsInAnHour;
NSLog(@"hoursBetweenDates: %@", hoursBetweenDates);
【问题讨论】:
-
NSLog(@"hoursBetweenDates: %d", hoursBetweenDates);
-
将解决问题的更改合并到问题的代码中是没有意义的。在那次编辑之后,您的代码不再崩溃,所以我回滚到问题的原始版本。
-
在编译器中打开警告。有一个严重的错误,如果打开警告,编译器会告诉你的。
标签: iphone objective-c ios xcode nsdate