代码转换 swift 2 --> 3 导致索引路径处的二进制运算符错误

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

正在使用 Xcode 7 和 swift 2。 应用程序运行良好。 更新为 Xcode 8。它自动从 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

你需要获取 row 属性 类型 Int

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)
    }
}