- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有函数 didSelectRowAt indexPath,里面有一个 if 语句。
myButtonChoiceString2 成功传递了从上一个 View Controller 中选择的按钮的字符串 title.text。
删除 if else 语句时,代码可以工作,但只能显示背部锻炼,因此包含此 if else 以允许显示肩部锻炼。
请您看看我在 if else 收到这些警告时做错了什么:
第三个警告:从未使用过不可变值“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/
背景 我最近在 merge 期间遇到了一个意外未 merge 的文档文件的问题。 无论出于何种原因,我搞砸了 merge 并有效地删除了文件(和其他几个文件),因为我忘记了它们的存在。 现在我想查看我
我在我的网站上使用旧的 mysql 版本和 php 版本 4。 我的表结构: | orders_status_history_id | orders_id | orders_status_id |
我是一名优秀的程序员,十分优秀!