• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 带有检查功能的数组超出范围

[复制链接]
菜鸟教程小白 发表于 2022-12-11 17:48:37 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我有一个数组和一个检查函数。

点击按钮时的功能:

// VARS
var workoutArray: [workout]!
var index = Int()

@IBAction func finishExerciseBtnPressed(_ sender: AnyObject) {

    // reload tabledata with next exercise in array

    print("the count of array is \(workoutArray.count)")

    if index <= workoutArray.count {
        index = index + 1
        tableView.reloadData()
        print("The exercise number is \(index)")
    } else {
        // Show finish workout button
        print("No items found anymore")
    }
}

tableView dequeReusableCell的功能:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    if let cell = tableView.dequeueReusableCell(withIdentifier: "workoutStartCell", for: indexPath) as? workoutStartCell {

        let workout = workoutArray[index]
        cell.updateUI(workout: workout, exercise: index + 1)

        return cell

    }else{
        return UITableViewCell()
    }
}

我正在从以前的 viewcontroller 发送数字 0 到这个 vc 顶部的索引 var。我有检查方法 finishExercisePressed 但无论我在做什么,它都会一直计数低谷。它说索引超出范围,但我正在检查索引是否等于或低于数组的计数。

这是我想要达到的目标:

enter image description here

有人可以帮帮我吗?

非常感谢。



Best Answer-推荐答案


I am checking if the index is equal or lower to the count of the arrays.

没错。但是,您是在增加索引之前执行此操作,并且由于索引从零开始,您应该在结束前停止一个索引:

var index = 1 // Set the index to 1 initially to skip the title
...
if index+1 < workoutArray.count {
    index += 1
    tableView.reloadData()
    ...
}

上述检查验证 index 会在 递增后保持在范围内。

关于ios - 带有检查功能的数组超出范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39961590/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap