ios - 关于Swift中可选变量操作的问题

标签 ios swift

我将变量设置为可选,从服务器获取变量的值,并尝试在每次按下按钮时递增它。

var page: Int? //Received data from previous VC


@IBAction func nextPage(_ sender: Any) {
    (page ?? 0) +=1
}

但是这段代码会导致错误。

Left side of mutating operator isn't mutable: '??' returns immutable value

我可以修复这个错误并正常增加可选变量的值吗?

最佳答案

最初 page 变量为 nil,因此左侧将通过 ?? 运算符变为 0,所以基本上您是在尝试执行此代码:

0 += 1

错误消息准确地告诉您 - 此表达式的左侧是不可变的,因为 0 文字是不可变的。

你可以通过这个来修复它:

page = (page ?? 0) + 1

这里如果page为nil,它将执行为:

page = 0 + 1

如果有值,则为:

page = page + 1

关于ios - 关于Swift中可选变量操作的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57968495/

相关文章:

ios - 在 iOS 上实现机器学习算法

swift - 如何让文本标签显示在 UICollectionView header 中?

ios - 有没有办法以编程方式让 UILabel 确定其内在内容大小

swift - Swift 中具有对数 y 轴的图形

ios - 容器 View 白色背景,iPad Swift 问题

ios - 这两个正则表达式匹配什么?

ios - 将 JSON String 转换为 Dictionary<String, Any> 将 Boolean 序列化为 Int

ios - UICollectionView 显示不同的单元格取决于方向

ios - 用于序列化 key 的结构或枚举?

swift - 唯一标识没有凭据的用户