【问题标题】:Binary operator '!=' cannot be applied to operands of type 'Bool' and 'NilLiteralConvertible'二元运算符“!=”不能应用于“Bool”和“NilLiteralConvertible”类型的操作数
【发布时间】:2015-09-25 17:55:22
【问题描述】:

二元运算符“!=”不能应用于“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!);
                        }
                    }
                });

【问题讨论】:

  • 请仅使用适合每个问题的标签。你的问题与苹果公司无关。并阅读标签说明。 [apple] 标签明确声明不使用它。

标签: ios swift


【解决方案1】:

更换你的线路:

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

用这一行:

if object.isKindOfClass(NSDictionary) {

isKindOfClass 的语法是:

func isKindOfClass(aClass: AnyClass!) -> Bool

表示isKindOfClass 将返回Bool,您无法将其与nil 进行比较。这就是编译器给你一个错误的原因。

【讨论】:

    【解决方案2】:

    isKindOfClass 返回 Booltruefalse 值),不是可选的。 Bools 可以直接在条件语句中测试(!=实际上返回一个Bool),所以不要测试nil

    if object.isKindOfClass(NSDictionary) {
    

    【讨论】:

      【解决方案3】:

      object.isKindOfClass(NSDictionary)) 将返回一个 Bool(真或假),具体取决于它是否属于该类。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-01-25
        • 2011-04-03
        • 2014-10-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多