NSDateComponents周在iOS8上的工作方式不同

前端之家收集整理的这篇文章主要介绍了NSDateComponents周在iOS8上的工作方式不同前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
自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(整数最大值).

Week返回某段时间内的周数(如果是一周或多个),并且与一个月或一年中的一周的数量完全不同.苹果为什么建议使用它呢?

解决方法

使用NSWeekOfMonthCalendarUnit或NSWeekOfYearCalendarUnit代替NSWeekCalendarUnit.

猜你在找的iOS相关文章