代码转换 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)
}
}
正在使用 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)
}
}