参见英文答案 >
How to rewrite Swift ++ operator in ?: ternary operator2个
我一直在为Swift 3更新我的Swift代码(非常兴奋),到目前为止一直很好.
但我确实贬低了一些我似乎无法更新的代码.
我一直在为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 = 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 + 1) % numberOfColumns