ios – 没有’=’候选者产生预期的上下文结果类型’Int’

参见英文答案 > How to rewrite Swift ++ operator in ?: ternary operator2个
我一直在为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

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...