基于所选按钮标签的超出范围错误的索引

index of out of range error based on selected button tag

我目前正在尝试通过将按钮标记 属性 传递到数组内部来 select 播放器,如下面的这行代码所示:

selectedPlayer = players[sender.tag]

当我编译应用程序时,它崩溃并显示索引超出范围错误,我认为这是因为我正在访问传递的数组大小。我知道确保我不超出数组的边界我需要做这样的事情:

players.count - 1

虽然我不完全确定如何用上一行代码实现相同的想法。有什么建议吗?

你有一个包含 N 个元素的数组 players 确保

 0 <= buttonTag < N

所以按钮标签的最大值应该是 = N - 1 ,你可以避免崩溃

if sender.tag < players.count { 
  selectedPlayer = players[sender.tag] 
}

但以上可能无法完成所需的功能,您必须遵守以上规则

你可以使用三元运算符?::

selectedPlayer = (sender.tag < players.count) ? players[sender.tag] : nil

如果你想使用一个班轮代码。