嵌套集合我有兩個類別:如何比較迅速
let collection1:[String:[String:NSObject]] = ["somekey":["nestedkey":"value"]]
let collection2:[String:[String:NSObject]] = ["somekey":["nestedkey":"value"]]
//I would like to compare them using the following:
let collectionsAreEqual = collection1 == collection2
複製和粘貼上面的代碼到操場提供了以下錯誤:
我知道我可以寫一個相同的功能:
infix func == (this:[String:[String:NSObject]], that:[String:[String:NSObject]]){
//return true or false
}
在目標c中,isE qual:在NSDictionary中處理這個沒有問題,因爲它爲你做了嵌套比較。是否有一些方法可以快速處理這個問題?
更新
我可以使用以下命令:
//:[String:[String:NSObject]]
let collection1:[String:NSObject] = ["somekey":["nestedkey":"value"]]
let collection2:[String:NSObject] = ["somekey":["nestedkey":"value"]]
//I would like to compare them using the following:
let collectionsAreEqual = collection1 == collection2
,但它需要使用NSObject的作爲在聲明中值。有沒有一種純粹的快速方法來處理這個問題?
純Swift方法是編寫自定義運算符 - 適用於字典的唯一內置的== ==需要值爲「Equatable」,而這些字典和數組不是。儘管在某些條件下'=='可以用於數組和字典,但這並不意味着它們符合'Equatable'。 – 2014-09-26 17:51:27