Swift错误"无法找到' =='接受......"

时间:2015-08-24 17:53:17

标签: ios swift error-handling

我一直在xCode中构建,juts在if语句中遇到了这个错误: Could not find overload for '==' that accepts that accepts the supplied arguments

这是生成它的代码

if (err == nil && token != nil) {
    ...
}

错误的类型为let err: NSError?,令牌为var token = body as! NSString

这似乎是造成错误的第一个条件。任何帮助或建议都会很棒。

2 个答案:

答案 0 :(得分:2)

您的问题是token不是可选的,因为您正在使用as!

摆脱强制类型转换来解决这个问题,让token成为一个可选项:

let token = body as? NSString

顺便说一下,你不需要条件周围的括号,你可以这样写:

if err == nil && token != nil {

}

答案 1 :(得分:0)

在我定义一个int的类似问题中,如果用户输入了一个数字,它会存储它。我有一个案例,如果用户没有输入....如果(数字==零),我有同样的问题。因为我将它定义为int,所以它不喜欢将它变为空,所以我将int转换为字符串并且它有效。

所以也许找到你定义“err”和“token”的位置,看看是否需要转换或某些东西。 var stringError = err并强制使用它!或者转换为String(错误)。