如果两个 object.string 数组在 tableView 上相同,则尝试显示隐藏标签。但我一直让索引超出范围
Posted
技术标签:
【中文标题】如果两个 object.string 数组在 tableView 上相同,则尝试显示隐藏标签。但我一直让索引超出范围【英文标题】:Trying to display hidden label if two arrays of object.string is the same on tableView. but i keep getting index out of range 【发布时间】:2020-03-07 23:26:28 【问题描述】:for _ in game[indexPath.row].firstTeam
if fireArray[indexPath.row].teams == game[indexPath.row].firstTeam
cell.picksAvailable.isHidden = false
break;
return cell
如果这些 array[indexPath.row].String 相同,我正在尝试取消隐藏此标签,但我不断超出范围。 有没有更好的方法来做到这一点
【问题讨论】:
你在for
循环中迭代了什么?为什么需要它?
我需要查看游戏数组中字符串类型的特定元素是否与 fireArray 相同或相同。如果是这种情况,我想显示隐藏的标签
game[indexPath.row].firstTeam
的值是多少?您发布的代码表明它是一个数组,但是一个数组是什么?字符串?然后在你的循环中fireArray[indexPath.row].teams
和game[indexPath.row].firstTeam
都不会改变,因为你没有修改indexPath.row
。
值是字符串,但两个数组永远不会有相同的对象数.. fireArray 总是小于游戏数组
@MarcMichel - 你需要提供更多细节,因为它仍然没有任何意义。使用您的代码,如果您选择第 0 行...假设game[indexPath.row].firstTeam
是一个由 4 个字符串组成的数组。您的循环实际上是 循环 4 次,看看是否 fireArray[0].teams == game[0].teams
...您为什么要比较同一事物 4 次?发布足够多的代码,以便我们查看您的变量是什么以及您要比较的内容。
【参考方案1】:
在访问数组元素之前检查范围:
if indexPath.row < game.count && indexPath.row < fireArray.count
if nil != fireArray[indexPath.row].teams.first(where: game[indexPath.row].firstTeam.contains)
cell.picksAvailable.isHidden = false
【讨论】:
以上是关于如果两个 object.string 数组在 tableView 上相同,则尝试显示隐藏标签。但我一直让索引超出范围的主要内容,如果未能解决你的问题,请参考以下文章