如果两个 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].teamsgame[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 上相同,则尝试显示隐藏标签。但我一直让索引超出范围的主要内容,如果未能解决你的问题,请参考以下文章

剑指offer---06---数组,二分法---旋转数组的最小数字

leetcode之指针方法

HIVE json格式数据的处理

Hive -解析json(get_json_object)

数组分配与访问

Hive解析Json数据