没有“+=”候选人产生预期的上下文结果类型 'Int'
No '+=' candidates produce the expected contextual result type 'Int'
我一直在为 Swift 3(真的很兴奋)更新我的 Swift 代码,到目前为止一切顺利。
但是我确实碰到了一点我似乎无法更新的代码。
我知道我遗漏了一些非常简单的东西,但我就是看不到什么。
这是我在 Swift 2.2 中的内容:
var column = 0
[...]
for item in 0 ..< collectionView!.numberOfItemsInSection(0) {
[...]
column = column >= (numberOfColumns - 1) ? 0 : ++column
}
++column
当然在 Swift 3 中被弃用,取而代之的是 column += 1
但是,在此上下文中,它会产生错误:
No '+=' candidates produce the expected contextual result type 'Int'
由于这行代码 (column = column >= (numberOfColumns - 1) ? 0 : column += 1
) 产生错误,我尝试了以下操作:
var newCol = column
column = column >= (numberOfColumns - 1) ? 0 : newCol += 1
但是我得到了同样的错误。
有人能给我指出正确的方向吗?
像这样:
column = column >= (numberOfColumns - 1) ? 0 : column + 1
+=
不是 return 值。你需要打破这个。幸运的是,在你的情况下,它比原来的更直接、更清晰:
column = (column + 1) % numberOfColumns
我一直在为 Swift 3(真的很兴奋)更新我的 Swift 代码,到目前为止一切顺利。 但是我确实碰到了一点我似乎无法更新的代码。
我知道我遗漏了一些非常简单的东西,但我就是看不到什么。
这是我在 Swift 2.2 中的内容:
var column = 0
[...]
for item in 0 ..< collectionView!.numberOfItemsInSection(0) {
[...]
column = column >= (numberOfColumns - 1) ? 0 : ++column
}
++column
当然在 Swift 3 中被弃用,取而代之的是 column += 1
但是,在此上下文中,它会产生错误:
No '+=' candidates produce the expected contextual result type 'Int'
由于这行代码 (column = column >= (numberOfColumns - 1) ? 0 : column += 1
) 产生错误,我尝试了以下操作:
var newCol = column
column = column >= (numberOfColumns - 1) ? 0 : newCol += 1
但是我得到了同样的错误。
有人能给我指出正确的方向吗?
像这样:
column = column >= (numberOfColumns - 1) ? 0 : column + 1
+=
不是 return 值。你需要打破这个。幸运的是,在你的情况下,它比原来的更直接、更清晰:
column = (column + 1) % numberOfColumns