【发布时间】:2015-01-24 13:42:14
【问题描述】:
我想将过期日期“硬编码”到我的 beta 代码中。现在我手动计算一个 unix 日期并将其与当前日期时间进行比较:
if([[NSDate date] timeIntervalSince1970]>1422748800) mustHalt = TRUE;
我想要一种将1422748800 替换为在编译时生成未来 90 天日期的等效数字的宏的方法。
有什么建议吗?
【问题讨论】:
我想将过期日期“硬编码”到我的 beta 代码中。现在我手动计算一个 unix 日期并将其与当前日期时间进行比较:
if([[NSDate date] timeIntervalSince1970]>1422748800) mustHalt = TRUE;
我想要一种将1422748800 替换为在编译时生成未来 90 天日期的等效数字的宏的方法。
有什么建议吗?
【问题讨论】:
预定义的宏 __DATE__ 是您所需要的。 Here is a SO question 与此相关。但也许你想使用这样的代码:
const int daysToExpire = 14;
NSString *compileDate = [NSString stringWithUTF8String:__DATE__];
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"MMM d yyyy"];
NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[df setLocale:usLocale];
NSDate *expireDate = [df dateFromString:compileDate];
bool isExpired = ([[NSDate date] compare:expireDate] == NSOrderedDescending); // decide for it
【讨论】:
__DATE__。此外,代码将无法编译。