我听说在 iOS7 中引入了 NSCalendar
的功能。
看了文档,没找到。也不在 OS X 文档中。
函数是 - (BOOL)isDate:(NSDate *)date1 equalToDate:(NSDate *)date2 toUnitGranularity:(NSCalendarUnit)unit
即这两个日期是否在同一天/同一时间周/月等...
但是,当我尝试在 Xcode 5 中使用它时。自动完成显示它时带有红色删除线,然后当我实际使用它时,出现此错误...
这很奇怪,因为这个功能明明就在那里,我就是不能使用它。
谁能解释为什么会这样?
最佳答案
很遗憾,它不适用于 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“不可用”。
关于ios - 方法 "not available on iOS",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19005174/