从 Swift 2.3转换为 3.2 时,我收到以下错误。
错误:二进制运算符不能应用于 Int 和字符串类型的操作数
为此,如果条件即if (error?.code)! == "-112"
if (error?.code)! == "-112"
{
print("hello")
}
错误本身说它是不同类型的Int
和String
。
您可能需要以相同的形式对一个或另一个进行类型转换,然后它们进行比较。
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 语句中的所有其他错误代码,以确保正确处理所有响应(以防万一(。