基于所选按钮标签的超出范围错误的索引
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
如果你想使用一个班轮代码。
我目前正在尝试通过将按钮标记 属性 传递到数组内部来 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
如果你想使用一个班轮代码。