0

这不是一个错字(至少对我来说不是,无论如何。)

其中一个定义NSCalendarUnits是 a 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;

修改它以通过替换来接受不同时代的可能性的正确方法NSEraCalendarUnitNSCalendarCalendarUnit

4

1 回答 1

1

的一个实例NSDateComponents可以包括一个日历。此组件是在 iOS 4.0 和 OS X 10.7 中添加的:

iOS 注意:在 iOS 4.0 及更高版本中,NSDateComponents 对象可以包含日历、时区和日期对象。这允许将日期组件传递给方法或从方法返回并保留其含义。

您可以通过NSCalendarCalendarUnitto-[NSCalendar components:fromDate:]让它包含在返回的日历中NSDateComponents

更新

如果要计算两个日期之间的天数,请使用-[NSCalendar components:fromDate:toDate:options:]. 您可能需要先构造这两个NSDate对象,使用dateFromComponents:.

于 2013-07-14T19:05:56.510 回答