二进制运算符'!='不能应用于'Bool'和'NilLiteralConvertible'类型的操作数

时间:2015-09-25 17:55:23

标签: ios swift

  

二元运算符'!='不能应用于'Bool'和'NilLiteralConvertible'类型的操作数

if((object.isKindOfClass(NSDictionary))!= nil){

then

3 个答案:

答案 0 :(得分:5)

替换你的行:

if ((object.isKindOfClass(NSDictionary)) != nil){

这一行:

if object.isKindOfClass(NSDictionary) {

isKindOfClass的语法是:

func isKindOfClass(aClass: AnyClass!) -> Bool

方法isKindOfClass将返回Bool,您无法将其与nil进行比较。这就是为什么编译器会给你一个错误。

答案 1 :(得分:0)

isKindOfClass会返回Booltruefalse值),而非可选项。 Bool可以在条件语句中直接测试(!=实际返回Bool),因此不要测试nil

if object.isKindOfClass(NSDictionary) {

答案 2 :(得分:0)

object.isKindOfClass(NSDictionary))将返回Bool(true或false),具体取决于它是否属于该类的一部分。

我之前从未使用过Swift,但我猜你不能将Bool和NilLiteralConvertible(nil)与!=进行比较。您应该检查对象是否为nil,然后检查object.isKindOfClass(NSDictionary))是否返回false。