将 NSDateComponents 与整数进行比较(或将 NSDateComponents 转换为整数)

Compare NSDateComponents to integer (or convert NSDateComponents to integer)

我正在尝试检查应用安装后是否过了 X 天才能解锁某些功能

NSDate *now = [NSDate date];
NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDateComponents *components = [gregorianCalendar components:NSCalendarUnitDay
                                                    fromDate:[[NSUserDefaults standardUserDefaults]
                                                              objectForKey:@"firstTimeDate"]
                                                      toDate:now
                                                     options:0];

但是当我这样做时

if (!(components < 1)) {
 ...
}

我明白了

Ordered comparison between pointer and integer ('NSDateComponents *' and 'int')

由于您要求的是天数,因此您应该访问 day 属性。

if (components.day >= 1) {
}

注意:使用 x >= y 可能比使用 !(x < y) 更清楚。