5

我刚刚将 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'

我很困惑,有人可以解释我出了什么问题以及如何解决吗?

4

3 回答 3

10

使用.CalendarUnitDay. NSCalendar 是一个原生的 Objective-C 框架,并且错误消息不是用于 swift 的。

于 2015-04-09T04:49:11.863 回答
4

我认为 Apple 认为这些单位的名称没有 .DayCalendarUnit 之类的意义,因此他们将其修改为 .CalendarUnitDay 听起来更合理和更具解释性。

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

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

希望能解释...

于 2015-04-09T04:57:29.683 回答
0

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

于 2016-05-02T13:55:51.350 回答