二进制运算符不能应用于 Int 和字符串类型的操作数 - Swift 2.3 -> Swift 3.2 转换错误



从 Swift 2.3转换为 3.2 时,我收到以下错误。

错误:二进制运算符不能应用于 Int 和字符串类型的操作数

为此,如果条件即if (error?.code)! == "-112"

,如下所示。
if (error?.code)! == "-112" 
{
print("hello")
}

错误本身说它是不同类型的IntString

您可能需要以相同的形式对一个或另一个进行类型转换,然后它们进行比较。

if (String(error?.code)!) == "-112"){
print("hello")
} 

Swift 是一种具有强大类型系统的语言。只能比较相同类型的值。

由于左侧是Int因此无论如何都要对右侧使用Int值。创建字符串是不必要的昂贵。别这样。

最有效(也是最安全(的解决方案是

if error?.code == -112 
{
print("hello")
}

您需要将错误代码结果类型转换为字符串,如下所示:

if String(error?.code)!) == "-112" {
print("Hello")
}

从本质上讲,您正在接受错误?。代码,通过将它放在字符串"容器模具"中并解开值(检索强制转换的结果(将其"强制转换"为字符串。

此外,如果您正在使用 API 响应,则必须考虑 else/if 语句中的所有其他错误代码,以确保正确处理所有响应(以防万一(。

相关内容

  • 没有找到相关文章

最新更新