繁体   English   中英

代码转换迅速2-> 3在索引路径上导致二进制运算符错误

[英]Code conversion swift 2 --> 3 resulting in binary operator error at index path

使用Swift 2的Xcode7。应用正常运行。 更新为Xcode8。它会自动从swift 2-> swift 3转换代码。现在我的Table视图代码出现问题。

这行代码有错误:

if (indexPath as NSIndexPath).row == 0 || indexPath == 1 {
        counter = 0
        self.performSegue(withIdentifier: "Day1", sender: self)
}

正如它说的那样,二进制运算符'=='不能应用于类型为'index path'和'int'的操作数

这是什么意思,我该如何解决?

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

    if (indexPath as NSIndexPath).row == 0 || indexPath == 1 {
        counter = 0
        self.performSegue(withIdentifier: "Day1", sender: self)
    }

    if (indexPath as NSIndexPath).row == 1 {
        counter = 1
        self.performSegue(withIdentifier: "Day2", sender: self)
    }
}

错误来自这段代码

indexPath == 1

您需要获取它的Int类型的row属性

indexPath.row == 1

另请注意,无需将IndexPath转换为NSIndexPath

indexPath.row

那么我认为您可能不想在第一条if语句中检查第二个条件,因为在这种情况下,第二个if语句将不会被执行

if indexPath.row == 0

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    if indexPath.row == 0 {
        counter = 0
        self.performSegue(withIdentifier: "Day1", sender: self)
    } else if indexPath.row == 1 {
        counter = 1
        self.performSegue(withIdentifier: "Day2", sender: self)
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM