2

我听说NSCalendariOS7中引入了一个功能。

在文档中查看并找不到它。OS X 文档中也没有。

功能是- (BOOL)isDate:(NSDate *)date1 equalToDate:(NSDate *)date2 toUnitGranularity:(NSCalendarUnit)unit这两个日期是否在同一天/同一周/一个月等...

但是,当我尝试在 Xcode 5 中使用它时。 AutoComplete 用红色删除线显示它,然后当我实际使用它时,我得到了这个错误......

在此处输入图像描述

这很奇怪,因为该功能显然在那里我无法使用它。

任何人都可以阐明为什么会这样吗?

4

2 回答 2

10

不幸的是,它不适用于 iOS,仅适用于 OS X 10.9。你总是可以欺骗rdar://14995171告诉苹果你也想要它用于 iOS。

如果您查看 iOS 7 SDK 中的 NSCalendar.h,您会看到这些方法被标记为可用,因为__NSCALENDAR_COND_IOS_7_0如果您查看同一文件的顶部,这些方法被定义为

#if !defined(__NSCALENDAR_COND_IOS_4_0)
#if NS_ENABLE_CALENDAR_NEW_API
#define __NSCALENDAR_COND_IOS_4_0 4_0
#define __NSCALENDAR_COND_IOS_5_0 5_0
#define __NSCALENDAR_COND_IOS_6_0 6_0
#define __NSCALENDAR_COND_IOS_7_0 7_0
#else
#define __NSCALENDAR_COND_IOS_4_0 NA
#define __NSCALENDAR_COND_IOS_5_0 NA
#define __NSCALENDAR_COND_IOS_6_0 NA
#define __NSCALENDAR_COND_IOS_7_0 NA
#endif
#endif

这目前评估NA意味着这些方法对 iOS“不可用”。

于 2013-09-25T12:52:49.073 回答
6

你从哪里听说过这种方法?在 iOS 7 的 beta 版本中,该方法可能已被删除。

它是私有 API:__NSCFCalendar.h

于 2013-09-25T12:47:43.720 回答