Xcode 8 beta 4:Calendar.Unit 与 Calendar.Component [英] Xcode 8 beta 4: Calendar.Unit vs Calendar.Component
问题描述
此 Swift 3 代码一直工作到 XCode 8 beta 3:
This Swift 3 code worked until XCode 8 beta 3:
let calendar = Calendar.current
let anchorComponents = calendar.components([Calendar.Unit.day, Calendar.Unit.month, Calendar.Unit.year, Calendar.Unit.hour], from: self)
在 Xcode 8 beta 4 中 Calendar.Unit
似乎被重命名为 Calendar.Component
.
In Xcode 8 beta 4 Calendar.Unit
appears to be renamed to Calendar.Component
.
现在这个代码
let calendar = Calendar.current
let anchorComponents = calendar.components([Calendar.Component.day, Calendar.Component.month, Calendar.Component.year, Calendar.Component.hour], from: self)
产生编译器错误cannot convert type Calendar.Component to NSCalendar.Unit
我做错了什么还是这是一个错误?
Am I doing anything wrong or is this a bug?
推荐答案
在 Xcode 8 beta 4 随附的 Swift 版本中,components
已重命名为 dateComponents
.
In the Swift version shipped with Xcode 8 beta 4, components
has been renamed to dateComponents
.
注意:为了使调用更简单,您可以省略 Calendar.Component
前缀.
Note: to make the call simpler, you can omit the Calendar.Component
prefix.
let anchorComponents = calendar.dateComponents([.day, .month, .year, .hour], from: self)
你得到的错误信息有点误导,我猜编译器在类型推断上挣扎.
The error message you got is a bit misleading, I guess the compiler was struggling with type inference.
这篇关于Xcode 8 beta 4:Calendar.Unit 与 Calendar.Component的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!