gpt4 book ai didi

ios - 变量 'myCellChoice' 从未在 didSelectRowAt indexPath 函数的 if 语句内发生变化

转载 作者:行者123 更新时间:2023-11-30 11:37:22 24 4
gpt4 key购买 nike

我有函数 didSelectRowAt indexPath,里面有一个 if 语句。

myButtonChoiceString2 成功传递了从上一个 View Controller 中选择的按钮的字符串 title.text。

删除 if else 语句时,代码可以工作,但只能显示背部锻炼,因此包含此 if else 以允许显示肩部锻炼。

请您看看我在 if else 收到这些警告时做错了什么:

  • 第一个警告:变量“myCellChoice”从未发生突变;考虑更改为“let”常量
  • 第二个警告:从未使用过不可变值“myCellChoice”的初始化
  • 第三个警告:从未使用过不可变值“myCellChoice”的初始化

    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    //First Warning Below
    var myCellChoice = DataService.instance.backWorkouts[indexPath.row]

    if myButtonChoiceString2 == "BACK" {
    //Second Warning Below
    let myCellChoice = DataService.instance.backWorkouts[indexPath.row]
    } else if myButtonChoiceString2 == "SHOULDERS" {
    //Third Warning Below
    let myCellChoice = DataService.instance.shoulderWorkouts[indexPath.row]
    }

    videoPlayer.loadVideoID(myCellChoice.videoCode)
    }

最佳答案

实际上是第一个 var 的警告,因为它应该声明为 let 而不是 var 因为在该方法上你从未给它赋值,所以它是常量而不是变量,关于其他两个警告都在 if----else 语句中声明,其中两个警告都没有被使用,实际上是行

 videoPlayer.loadVideoID(myCellChoice.videoCode)

读取在most-top声明的myCellChoice var,这个

 var myCellChoice = DataService.instance.backWorkouts[indexPath.row]

不是在if----else语句中声明的,所以从编译器的逻辑来看它们都是无用

全部应该像这样重写

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

if myButtonChoiceString2 == "BACK" {

let myCellChoice = DataService.instance.backWorkouts[indexPath.row]

videoPlayer.loadVideoID(myCellChoice.videoCode)

} else if myButtonChoiceString2 == "SHOULDERS" {

let myCellChoice = DataService.instance.shoulderWorkouts[indexPath.row]

videoPlayer.loadVideoID(myCellChoice.videoCode)

}
}

关于ios - 变量 'myCellChoice' 从未在 didSelectRowAt indexPath 函数的 if 语句内发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49602860/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com