二元运算符'!='不能应用于'Bool'和'NilLiteralConvertible'类型的操作数
if((object.isKindOfClass(NSDictionary))!= nil){
then
答案 0 :(得分:5)
替换你的行:
if ((object.isKindOfClass(NSDictionary)) != nil){
这一行:
if object.isKindOfClass(NSDictionary) {
isKindOfClass
的语法是:
func isKindOfClass(aClass: AnyClass!) -> Bool
方法isKindOfClass
将返回Bool
,您无法将其与nil
进行比较。这就是为什么编译器会给你一个错误。
答案 1 :(得分:0)
isKindOfClass
会返回Bool
(true
或false
值),而非可选项。 Bool
可以在条件语句中直接测试(!=
实际返回Bool
),因此不要测试nil
:
if object.isKindOfClass(NSDictionary) {
答案 2 :(得分:0)
object.isKindOfClass(NSDictionary))将返回Bool(true或false),具体取决于它是否属于该类的一部分。
我之前从未使用过Swift,但我猜你不能将Bool和NilLiteralConvertible(nil)与!=进行比较。您应该检查对象是否为nil,然后检查object.isKindOfClass(NSDictionary))是否返回false。