在OS X版本10.10中不推荐使用'YearCalendarUnit':改为使用NSCalendarUnitYear

Huy*_*Inc 9 macos ios swift

我的代码:

 let calendar = NSCalendar.currentCalendar()
 let dateComponents = calendar.components(NSCalendarUnit.YearCalendarUnit | NSCalendarUnit.MonthCalendarUnit | NSCalendarUnit.DayCalendarUnit, fromDate: self)
Run Code Online (Sandbox Code Playgroud)

我的错误:

'YearCalendarUnit' was deprecated in OS X version 10.10: Use NSCalendarUnitYear instead
'MonthCalendarUnit' was deprecated in OS X version 10.10: Use NSCalendarUnitMonth instead
'DayCalendarUnit' was deprecated in OS X version 10.10: Use NSCalendarUnitDay instead
Run Code Online (Sandbox Code Playgroud)

但我不能键入NSCalendarUnitYear以及(NSCalendarUnitMonth/NSCalendarUnitDay)有什么问题?

Sch*_*cal 14

使用 let dateComponents = calendar.components(.CalendarUnitYear | .CalendarUnitMonth | .CalendarUnitDay, fromDate: self)

编辑:
这是因为错误消息是针对Objective-C的,不适合swift.

编辑2:看看Will对Swift 2及其评论的评论.

  • 从Swift 2开始,您使用`OptionSetType`语法.对于同样的代码,它看起来像`calendar.components([.Year,.Month,.Day],fromDate:self)`参见http://stackoverflow.com/questions/24066170/how-to-create- ns-options-style-bitmask-enumerations-in-swift更多 (4认同)