Xcode日期预处理宏

5

我希望能够在我的beta代码中“硬编码”一个过期日期。目前,我手动计算Unix日期并将其与当前日期时间进行比较:

 if([[NSDate date] timeIntervalSince1970]>1422748800) mustHalt = TRUE;

我希望有一种方法可以用宏在编译时生成一个日期,使得其相当于比当前日期后90天的时间戳替换1422748800

您有任何建议吗?

1个回答

3
预定义的宏__DATE__是您所需的。 这里是一个与此相关的 SO 问题。但也许您想使用这样的代码:
    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__。此外,代码将无法编译。 - zaph
当然,你是正确的。但据我所理解,这就是问题所在。 - Michael Dorner
1
这对我有用-谢谢。关键是创建一个基于编译日期的常量。 - JeremyLaurenson
@Zaph:现在我明白你的意思了。但是我觉得我理解了你的意图。 - Michael Dorner

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接