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

Posted

技术标签:

【中文标题】没有“+=”候选者产生预期的上下文结果类型“Int”[重复]【英文标题】:No '+=' candidates produce the expected contextual result type 'Int' [duplicate] 【发布时间】:2016-03-31 16:26:59 【问题描述】:

我一直在为 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

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

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

由于这行代码 (column = column &gt;= (numberOfColumns - 1) ? 0 : column += 1) 产生错误,我尝试了以下方法:

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

但我得到了同样的错误。

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

【问题讨论】:

【参考方案1】:

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

column = (column + 1) % numberOfColumns

【讨论】:

【参考方案2】:

像这样:

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

【讨论】:

它最清楚、最直接地回答了 OP 的问题,但像往常一样,Rob Napier 的回答是优雅的 Swifty 方式。 :) 是的,你能做什么? 我试过了,但它只是加了 1 而不是 += 1。.map _ in NSIndexPath(forRow: insertPos++, inSection: 0) 在我的情况下,n + 1 不起作用

以上是关于没有“+=”候选者产生预期的上下文结果类型“Int”[重复]的主要内容,如果未能解决你的问题,请参考以下文章

removeSubrange 产生“()”,而不是预期的上下文结果类型“字符串”

引起:NoSuchBeanDefinitionException:没有 xxx 类型的合格 bean 预期至少 1 个 bean 有资格作为自动装配候选者

无法将 Int 类型的值转换为预期的参数类型 Bool

实体框架 FirstOrDefault 谓词未返回预期结果

URLSession 错误

在 WAR 文件中定义 Servlet 上下文