这不是一个错字(至少不是我本人,无论如何。)
其中一个定义的NSCalendarUnits
是NSCalendarCalendarUnit
。任何人都可以解释这是什么或如何使用它?
例如,我想计算日期之间的天数,这可能发生在不同的时代。 Apple提供此代码用于查找某个时代内日期之间的天数(它在NSCalendar
上实现为类别,因此self
指的是NSCalendar
):
NSInteger start = [self ordinalityOfUnit:NSDayCalendarUnit inUnit:NSEraCalendarUnit forDate:startDate];
NSInteger end = [self ordinalityOfUnit:NSDayCalendarUnit inUnit:NSEraCalendarUnit forDate:endDate];
return end - start;
通过将NSEraCalendarUnit
替换为NSCalendarCalendarUnit
,是否正确修改此方法以接受不同时代的可能性?
答案 0 :(得分:1)
NSDateComponents
的实例可以包含日历。此组件已在iOS 4.0和OS X 10.7中添加:
iOS注意:在iOS 4.0及更高版本中,NSDateComponents对象可以包含日历,时区和日期对象。这允许将日期组件传递给方法或从方法返回,并保留其含义。
您可以将NSCalendarCalendarUnit
传递给-[NSCalendar components:fromDate:]
,让其在退回的NSDateComponents
中包含日历。
如果要计算两个日期之间的天数,请使用-[NSCalendar components:fromDate:toDate:options:]
。您可能需要先使用NSDate
构建两个dateFromComponents:
对象。