9
私はSwift 2.2からSwift 3.0へXcode 8 betaを使用して自分のプロジェクトを移行しました。Swift 3の「あいまいな接頭辞の使用」コンパイラエラー
私は、次のコードのようなもの(あなたが遊び場にこれを貼り付けることができます)があります:スウィフト2.2で
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
}
このコンパイル罰金を。しかし、スウィフト3.0で、私は「プレフィックス」
のエラー
あいまいな使用を取得し、これがスウィフト3.0でコンパイルするために取得する唯一の方法は、別の行にマップを分割することです。
let sortedDatesWithCount = datesWithCount.sorted { $0.0 < $1.0 }.prefix(1) let mappedDates = sortedDatesWithCount.map { return $0.0 }
ところで、実際のコードでは、私は
map
ないDate
sからNSNotification
オブジェクトを返すんだが、エラーは同じです。この例を単純にするためにここではDate
を使用しました。これを1つのライナーとしてコンパイルする方法はありますか?
更新:SwiftプロジェクトのためにJIRAを作成しました。あなたは
map
に渡す前に、アレイにArraySliceを作る場合
日付はSwift 3のComparableに準拠しています。 '$ {$ 0.0 $$}'ソート済みで十分でしょう –
ありがとう、私は知らなかった。それはとても良いニュースです! //私はOPのコードを使用しているだけで、Dateはとにかく例であると言います。 :) – Moritz
私にも型推論バグのように見えます。私はそのように報告するつもりです。 @LeoDabus日付のソートについてのヒントをありがとう。実際のコードは実際に日付でソートされています。例のビットはマップからDatesを返しています。 – mluisbrown