自iOS8以来,不推荐使用NSDateComponents周. Apple建议使用weekOfMonth或weekOfYear,具体取决于上下文,但它们的工作方式不同.例如:
components1 = [calendar components:NSMonthCalendarUnit | NSWeekCalendarUnit | NSDayCalendarUnit fromDate:[self date7DaysAgo] toDate:[NSDate date] options:0];
components1返回month = 0,week = 1,day = 0,weekOfMonth和weekOfYear都等于2147483647(整数最大值).
components2 = [calendar components:NSMonthCalendarUnit | NSWeekCalendarUnit | NSDayCalendarUnit fromDate:[self date30daysAgo] toDate:[NSDate date] options:0];
components2返回month = 1(我知道它取决于,但它只是一个例子),week = 0,weekOfMonth和weekOfYear都等于2147483647(整数最大值).
解决方法
使用NSWeekOfMonthCalendarUnit或NSWeekOfYearCalendarUnit代替NSWeekCalendarUnit.