【发布时间】:2016-06-20 20:20:51
【问题描述】:
我刚刚将我的项目从 Swift 2.2 迁移到带有 Xcode 8 beta 的 Swift 3.0。
我有类似下面的代码(你可以把它粘贴到操场上):
import Foundation
let datesWithCount: [(Date, Int)] = [(Date(), 1), (Date(), 2), (Date(), 3)]
let dates: [Date] = datesWithCount.sorted {
$0.0 < $1.0
}.prefix(1).map {
return $0.0
}
在 Swift 2.2 中编译得很好。但是,使用 Swift 3.0 我得到了错误
“前缀”的模糊使用
在 Swift 3.0 中编译它的唯一方法是将地图拆分为单独的一行:
let sortedDatesWithCount = datesWithCount.sorted {
$0.0 < $1.0
}.prefix(1)
let mappedDates = sortedDatesWithCount.map {
return $0.0
}
顺便说一句,在实际代码中,我从 map 而不是 Dates 返回 NSNotification 对象,但错误是相同的。我只是在这里使用Date 来简化示例。
有什么办法可以将它编译为一个衬里?
更新:为 Swift 项目创建了一个 JIRA。
【问题讨论】: