Swift:++已被弃用 - 替换代码无效

时间:2016-05-07 00:28:14

标签: ios swift

我知道" ++"将被删除在Swift 3中,它必须被替换:

+ = 1

但在此代码中,当我更改为此值时,出现错误:

override func viewDidLoad() {
    super.viewDidLoad()

    imageView.image = images[index++]
    animateImageView()
}

当我插入时:

imageView.image = images[index += 1]

我收到错误。如何更改此代码?这是图像转换代码(如果我需要,我会整个代码),并且在模拟器中一切正常,但仍然,我想改变它。

2 个答案:

答案 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()
}