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

mos*_*ic6 0 ios swift

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

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

let paramString:NSMutableString = NSMutableString();
                (obj as! NSArray).enumerateObjectsUsingBlock({ (object, idx, stop) -> Void in
                    if ((object.isKindOfClass(NSDictionary)) != nil){
                        let pair:NSDictionary? = object as? NSDictionary;
                        let textId:NSNumber? = pair?.objectForKey("TextId") as? NSNumber;
                        var content:NSString? = pair?.objectForKey("Content") as? NSString;

                        if ((content == nil) || (content?.length == 0) ) {
                            content = " ";
                        }

                        if ((textId != nil) && (content != nil))    {
                            paramString.appendFormat("%ld:%@\n", textId!.integerValue, content!);
                        }
                    }
                });
Run Code Online (Sandbox Code Playgroud)

Dha*_*esh 5

替换你的行:

if ((object.isKindOfClass(NSDictionary)) != nil){
Run Code Online (Sandbox Code Playgroud)

用这一行:

if object.isKindOfClass(NSDictionary) {
Run Code Online (Sandbox Code Playgroud)

语法isKindOfClass是:

func isKindOfClass(aClass: AnyClass!) -> Bool
Run Code Online (Sandbox Code Playgroud)

手段isKindOfClass将返回Bool,你无法与之比较nil.这就是为什么编译器会给你一个错误.