【发布时间】:2016-09-05 20:30:00
【问题描述】:
在我的旧代码中,我有一个名为“daysFrom”的日期扩展,但我似乎无法迁移到 Swift 3:
func daysFrom(_ date:Date) -> Int{
//Swift 2:
//return Calendar.current.date(.firstWeekday, from: date, to: self, options: []).day
//My Swift 3 attempt, doesn't work:
return Calendar.current.date([.firstWeekday], from: date, to: self).day
}
我发现this Swift 线程说:
...Swift 2 中的 NSCalendarUnit 和 Swift 3 中的 Calendar.Component 都不包含组件 firstWeekday...
那么我该如何替换这个扩展呢??
【问题讨论】:
-
您的“Swift 2”版本不是有效的 Swift 2 代码,并且 firstWeekday 不是日历组件。
-
Swift days between two NSDates 有适用于 Swift 3 之前的所有 Swift 版本的代码:stackoverflow.com/a/38549470/1187415。
-
我也更新了原问题 o Xcode 8 beta 6 stackoverflow.com/a/27184261/2303865
-
作为对@MartinR 的回应,在 Xcode 8 测试版中的某个时刻,迁移助手将旧的
weekComponent更改为firstWeekday,而不是应有的weekday。给我带来了超出应有的混乱。
标签: swift3 nscalendar