我在遍历一组篮球运动员,他们的ID等于某个运动员的ID。然后,我想将+1添加到播放器对象的fouls属性。

self.match.matchState.homePlayers.first{$0.id == toPlayer.id}?.fouls += 1


我有错误


  变异运算符的左侧不可变:函数调用返回不可变值


fouls属性是一个可选的整数。 var fouls: int?
即使当我将Player结构更改为类类型时,我也会遇到另一个错误。


  无法将不可变值作为inout参数传递:函数调用返回不可变值


那么我应该如何循环一个对象数组并更改其中的某个属性?

最佳答案

我将Player类型从struct更改为class
然后我找到了一种方法来以这种方式更新Player对象fouls属性,并且它现在可以正常工作且没有错误

if toPlayer.fouls == nil {
   self.match.matchState.homePlayers.first{$0.id == toPlayer.id}?.fouls = toPlayer.fouls! + 1
}

关于arrays - 遍历数组并更改其属性时,获取不是可变错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52863843/

10-09 03:16