使用未解析的标识符 NSCalendarUnitDay

Use of unresolved identifier NSCalendarUnitDay

我刚刚将 Xcode 更新到 6.3 版本。

除了我必须针对 as 进行的所有修复(主要是),我有一些刚刚出现的警告(这是自 iOS 8.0 以来的声明,这很奇怪)。

我的代码

NSCalendar.currentCalendar().compareDate(self, toDate: date, toUnitGranularity: .DayCalendarUnit) == .OrderedAscending

现在显示警告

'DayCalendarUnit' was deprecated in iOS version 8.0: Use NSCalendarUnitDay instead

好吧,那我把.DayCalendarUnit改成NSCalendarUnitDay

现在我收到一条错误消息:

Use of unresolved identifier 'NSCalendarUnitDay'

我很困惑,谁能告诉我哪里出了问题以及如何解决?

使用.CalendarUnitDay。 NSCalendar 是原生 Objective-C 框架,错误消息不适用于 swift.

我认为 Apple 认为这些单位的名称与 .DayCalendarUnit 一样没有意义,因此他们将其修改为听起来更明智和解释性更好的 .CalendarUnitDay。

在Objective-C中进行了类似的修改。 NSDayCalendarUnit 已弃用,您必须使用 NSCalendarUnitDay。

您遇到的问题是您收到了 Objective-C 而不是 Swift 的弃用警告。我们希望 Apple 尽快修复它。

希望能解释...

在 Xcode 7.3 中使用 .Day,这是一个 属性 的 NSCalendarUnit 结构