7

我一直在为 Swift 3 更新我的 Swift 代码(真的很兴奋),到目前为止一切都很好。但我确实翻滚了一些我似乎无法更新的代码。

我知道我错过了一些非常简单的东西,但我就是看不到什么。

这是我在 Swift 2.2 中的内容:

var column = 0

[...]

for item in 0 ..< collectionView!.numberOfItemsInSection(0) {
    [...]

    column = column >= (numberOfColumns - 1) ? 0 : ++column
}

当然在 Swift 3中++column被弃用了column += 1

但是,在这种情况下,它会产生错误:

没有“+=”候选产生预期的上下文结果类型“Int”

由于这行代码 ( column = column >= (numberOfColumns - 1) ? 0 : column += 1) 会产生错误,因此我尝试了以下操作:

var newCol = column
column = column >= (numberOfColumns - 1) ? 0 : newCol += 1

但我得到同样的错误。

有人能指出我正确的方向吗?

4

2 回答 2

9

+=不返回值。你需要打破这个。幸运的是,在您的情况下,这比原来的更简单明了:

column = (column + 1) % numberOfColumns
于 2016-03-31T16:33:06.917 回答
7

像这样:

column = column >= (numberOfColumns - 1) ? 0 : column + 1
于 2016-03-31T16:28:24.220 回答