Swift 二进制运算符'=';无法应用于类型为';n错误';和';NilLiteralConvertible';
我有以下代码:Swift 二进制运算符'=';无法应用于类型为';n错误';和';NilLiteralConvertible';,swift,swift2,Swift,Swift2,我有以下代码: if ((error) != nil) { print(error, terminator: "") } 在我的Swift程序中(从Swift 1转换为Swift 2) 但是Xcode在抱怨 二进制运算符“!=”无法应用于“NSError”和“NilLiteralConvertible”类型的操作数 上面这一行有什么问题?只需尝试以下代码即可 if (error != []) { // do whatever u want } 或者其他选项是使用swift
if ((error) != nil) {
print(error, terminator: "")
}
在我的Swift程序中(从Swift 1转换为Swift 2)
但是Xcode在抱怨
二进制运算符“!=”无法应用于“NSError”和“NilLiteralConvertible”类型的操作数
上面这一行有什么问题?只需尝试以下代码即可
if (error != [])
{
// do whatever u want
}
或者其他选项是使用swift 2.0中可用的try catch block您的
错误
类型为NSError
。它不是可选的,因此不能将它与nil
进行比较。如果让Xcode转换为新语法,它可能会用do try catch
块包围代码。如果您的代码在catch
块内,则错误永远不会是nil
。请显示更多代码,包括错误声明
。由于您无法将其与nil进行比较,并且它的类型为NSError,不与nil进行比较,您是否应该只打印错误而不首先检查它是否有值?如果它不是可选的,这意味着它必须有一个正确的值?如果没有错误呢@vacawama@DonAlejandro,需要显示更多代码来进一步解释它。我不知道这里的错误变量是如何创建的,但是错误消息很清楚,它不是可选的,所以不能与nil比较。你能解释一下这个吗?比较的右边是什么,一个空列表?