我刚刚使用 Xcode 8 beta 将我的项目从 Swift 2.2 迁移到 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
}
顺便说一句,在实际代码中,我NSNotification
从map
not Date
s 返回对象,但错误是相同的。我只是Date
在这里用来简化示例。
有没有办法让它编译为一个衬里?
更新:为 Swift 项目创建了一个JIRA。