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

Binary operator cannot be applied to operands of type Int and String - Swift 2.3 -> Swift 3.2 conversion error

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

Error : Binary operator cannot be applied to operands of type Int and String

对于此 if 条件,即 if (error?.code)! == "-112",如下所示。

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

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

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

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

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

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

本质上,您将 error?.code "casting" 作为一个字符串,将其放入字符串 "container mould" 中并解包该值(检索转换结果)。

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

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

因为左侧是 Int,无论如何使用右侧的 Int 值。创建一个字符串是不必要的昂贵。不要那样做。

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

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