
[英]Binary operator cannot be applied to operands of type Int and String - Swift 2.3 -> Swift 3.2 conversion error
[英]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.