二元运算符'=='不能应用于两个'[AnyHashable:Any]!'操作数
问题描述:
我要以这种方式来比较两个字典:二元运算符'=='不能应用于两个'[AnyHashable:Any]!'操作数
var previouldObj:[AnyHashable:Any]!
var obj:[AnyHashable:Any]!
for i in 0..<self.arrayData.count
{
obj=self.arrayData[i] as! [AnyHashable:Any]
if(obj == previouldObj)
{
}
}
但我发现了这个错误
二元运算符“==”不能被应用到两个“[AnyHashable:任何]!'操作数
如何解决这个问题?请帮助我 谢谢
答
一种方法是将previouldObj
转换为NSDictionary
并致电isEqual
。
var previouldObj:[AnyHashable:Any]!
var nsDict = NSDictionary(dictionary: previouldObj)
var obj:[AnyHashable:Any]!
for i in 0..<self.arrayData.count
{
obj=self.arrayData[i] as! [AnyHashable:Any]
if(nsDict.isEqual(to: obj))
{
}
+0
if(nsDict.isEqual(to:obj)== false) {}但这总是返回false。这是为什么。我的数组有很多平等的字典..我试图通过检查这个条件来避免重复。但我无法实现这一点 – user1960169
试试这个https://stackoverflow.com/questions/32365654/how-do-i-compare-two-dictionaries-in-swift –
@UmairAfzal我试过,但往哪里放方便的init(字典otherDictionary :[AnyHashable:Any])? – user1960169
为什么不使用isEqualToDictionary()方法? –