我知道" ++"将被删除在Swift 3中,它必须被替换:
+ = 1
但在此代码中,当我更改为此值时,出现错误:
override func viewDidLoad() {
super.viewDidLoad()
imageView.image = images[index++]
animateImageView()
}
当我插入时:
imageView.image = images[index += 1]
我收到错误。如何更改此代码?这是图像转换代码(如果我需要,我会整个代码),并且在模拟器中一切正常,但仍然,我想改变它。
答案 0 :(得分:4)
正如dasblinkenlight所提到的,解决方案是简单地将增量移动到您下标数组之后。
请注意它之后的原因,因为它等同于具有后缀增量运算符。如果您使用++index
,则可以将index += 1
移到下标之前。
关于这里发生什么的额外信息,如果您将运算符想象为函数,您可以看到这里发生了什么。
++
运算符的实现类似:
//++ declared as postfix operator before this.
func ++ (inout num: Int) -> Int {
let temp = num
num = num + 1
return temp
}
+=
运算符的实现类似:
func += (inout lhs: Int, rhs: Int) {
lhs = lhs + rhs
}
这里需要注意的重要一点是,++
运算符会返回一个Int
值,该值可以在下标中使用,而+=
实际返回void
(或没有返回)因此它不能在下标中用作Int
。
答案 1 :(得分:2)
将+= 1
移出索引器,如下所示:
override func viewDidLoad() {
super.viewDidLoad()
imageView.image = images[index]
index += 1
animateImageView()
}