Этот метод работает нормально в последней стабильной версии Swift, но он не будет компилировать в Swift 1.2:Swift 1,2 «Невозможно выразить преобразование кортежа» ошибка
final func rotateBlocks(orientation: Orientation) {
if let blockRowColumnTranslation:Array<(columnDiff: Int, rowDiff: Int)> = blockRowColumnPositions[orientation] {
for (idx, (columnDiff:Int, rowDiff:Int)) in enumerate(blockRowColumnTranslation) {
blocks[idx].column = column + columnDiff
blocks[idx].row = row + rowDiff
}
}
}
Эта линия:
for (idx, (columnDiff:Int, rowDiff:Int)) in enumerate(blockRowColumnTranslation) {
Выдает следующую ошибку:
"Cannot express tuple conversion "(index:Int, element:(columnDiff:Int,rowDiff:Int)) to "(Int, (Int, Int))"
Любые идеи о том, что здесь происходит, и как это исправить?
Я получил код для компиляции в Swift 1.2, но должен был сделать много догадок относительно точных деклараций и/или предполагаемых типов неуказанных типов '' blockRowColumnPositions', ориентацию 'и т. д. Отделите его до полного файла, который * должен * (/ did) скомпилировать. – BaseZen