斯威夫特2:表达方式含糊不清?

时间:2015-10-11 20:54:32

标签: swift2

以下代码在我迁移到Swift 2之前已经工作了,现在我似乎无法解决它:

let cal = NSCalendar(calendarIdentifier: GregorianCalendar)
let components = cal!.components(.CalendarUnitDay | .CalendarUnitMonth | .CalendarUnitYear, fromDate: date) **error at this line**
let newDate = cal!.dateFromComponents(components)

我收到以下错误消息:

  

如果没有更多的上下文,表达的类型是不明确的

2 个答案:

答案 0 :(得分:1)

在Swift 2中,NSCalendarUnit的声明以及OptionSetType

的处理方式发生了变化
let cal = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)
let components = cal!.components([.Day, .Month, .Year], fromDate: date)

请大家阅读Swift Blog和当前的Swift语言指南

答案 1 :(得分:0)

我能够通过强制类型转换来修复错误

 let components = calendar.components([.Hour, .Minute, .Second], fromDate: date as! NSDate)