从 Swift 2.3 转换到 3.2 时,我收到以下错误。
错误:二元运算符不能应用于 Int 和 String 类型的操作数
为此,如果条件 ieif (error?.code)! == "-112"
如下行所示。
if (error?.code)! == "-112"
{
print("hello")
}
Swift 是一种具有强类型系统的语言。您只能比较相同类型的值。
由于左侧Int
无论如何都使用Int
右侧的值。创建一个字符串是不必要的昂贵。不要那样做。
最有效(和安全)的解决方案是
if error?.code == -112
{
print("hello")
}
错误本身说它是不同的类型Int
和String
.
您可能需要以相同的形式对一个或另一个进行类型转换,然后将它们进行比较。
if (String(error?.code)!) == "-112"){
print("hello")
}
您需要将错误代码结果类型转换为字符串,如下所示:
if String(error?.code)!) == "-112" {
print("Hello")
}
本质上,您正在获取错误?.code,通过将其放置在字符串“容器模具”中并解包值(检索转换结果),将其“转换”为字符串。
此外,如果您正在使用 API 响应,则必须考虑 else/if 语句中的所有其他错误代码,以确保正确处理所有响应(以防万一)。