0

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

错误:二元运算符不能应用于 Int 和 String 类型的操作数

为此,如果条件 ieif (error?.code)! == "-112"如下行所示。

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

3 回答 3

1

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

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

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

if error?.code == -112 
{
     print("hello")
}
于 2018-06-14T08:31:17.873 回答
1

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

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

if (String(error?.code)!) == "-112"){
  print("hello")
} 
于 2018-06-14T08:12:56.623 回答
0

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

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

本质上,您正在获取错误?.code,通过将其放置在字符串“容器模具”中并解包值(检索转换结果),将其“转换”为字符串。

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

于 2018-06-14T08:19:46.923 回答