繁体   English   中英

在Swift中检查isKindOfClass到Dictionary

[英]Check isKindOfClass to Dictionary in Swift

我有一个字典对象数组。 在for循环中,我要检查数组中的每个对象是否为isKindOfClass字典。

var xxxStatus = jsonResponse as Dictionary<String, AnyObject>
var applications = xxxStatus["status"] as NSArray!

for application in applications {
   if  application.isKindOfClass(Dictionary) {
        //Im getting this error in above if statmet "Type Dictionary<Type, Value> does not confirm to protocol 'AnyObject'"          
   }
}

如何将isKindOfClass用于字典? 是否不需要if检查或我的操作方式有误?

谢谢!

这可以通过多种方式来完成。 如果您知道可以使用的键和值类型, is如下所示:

for application in applications {
    if application is Dictionary<String, AnyObject> {
      // Do something
    }
}

您还可以使用条件分配:

for application in applications {
    if let applicationDictionary = application as [String: AnyObject] {
      // Do something
    }
}

另外,如果要确保它是NSDictionary的实例,则可以使用application.isKindOfClass(NSDictionary)

这是因为isKindOfClass需要AnyClass类型,也就是作为类的类型。 字典不是类,而是结构,因此不能由AnyObject

如果将代码切换到application.isKindOfClass(NSDictionary)它应该可以工作(从可以编译的意义上说,并且检查类型是否为NSDictionary )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM