方法“在iOS上不可用”

时间:2013-09-25 12:39:19

标签: ios objective-c nsdate nscalendar

我听说过iOS7中引入的NSCalendar上的一个函数。

看了一下文档但找不到它。也不在OS X文档中。

该功能为- (BOOL)isDate:(NSDate *)date1 equalToDate:(NSDate *)date2 toUnitGranularity:(NSCalendarUnit)unit,即同一天/同一周/月内的这两个日期等等......

然而,当我尝试在Xcode 5中使用它时.AutoComplete显示红色触发,然后当我实际使用它时,我收到此错误...

enter image description here

很奇怪,因为功能很明显,我只是无法使用它。

有人能说清楚为什么会这样吗?

2 个答案:

答案 0 :(得分:10)

不幸的是,它不适用于iOS,仅适用于OS X 10.9。你总是可以通过rdar://14995171来告诉Apple你也想要它用于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来说“不可用”。

答案 1 :(得分:6)

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

这是私有API:__NSCFCalendar.h