在线文档中未包含 NSCalendar 的某些方法。这些可以安全使用吗?

Some methods of NSCalendar are not included in online documentation. Are these safe to use?

在使用 Swift 处理 NSDate 和 NSCalendar 时,我遇到了 NSCalendar 中的一些 API 方法,这些方法 public 但未包含在在线文档中。

NSCalendar documentation

遵循其中一些 API 方法:

@availability(iOS, introduced=8.0)
func compareDate(date1: NSDate, toDate date2: NSDate, toUnitGranularity unit: NSCalendarUnit) -> NSComparisonResult

@availability(iOS, introduced=8.0)
func isDate(date1: NSDate, equalToDate date2: NSDate, toUnitGranularity unit: NSCalendarUnit) -> Bool

@availability(iOS, introduced=8.0)
func isDateInToday(date: NSDate) -> Bool

这些方法使日期操作变得非常容易,但我不确定是否应该使用这些方法,因为它们没有记录。

现在的问题是,这些在 iOS 应用程序中使用安全吗?我的意思是,是否会在不通知或向后兼容的情况下更改或删除它们,是否会批准使用这些方法的任何应用程序?

这些方法是公开声明的(即它们在 NSCalendar.h 中),因此可以合法使用。它们可能没有在线记录,但这看起来像是一个文档问题,因为它自 2011 年以来(在撰写本文时)就没有得到正确更新。

另请注意,其他人已经发现并评论了这些 API 添加的有用性,例如 NSHipster

因此,假设您只支持 iOS 8+,那么您可以使用那些(方便的)API 方法。