我有一個方法[Order toJSON],它將我的類映射到必須發送到服務器的複雜NSDictionary。要發送它,我使用NSJsonSerialization
將其轉換爲字符串。比較複雜的NSDictionary
這本字典的形式爲:
@{
@"key": @"value",
@"order": @[
@{ @"name": @"obj1", @"content": @[ ... ] },
@{ @"name": @"obj2", @"content": @[ ... ] }
]
}
我編寫單元測試,以檢查的NSDictionary是正確的。問題是我實際上不知道數組的順序。 obj1之前我可以有obj2。 當我使用- [NSDictionary isEqualToDictionary]
時,由於對象的順序,它有時會失敗。
有沒有比較這些字典而不比較它包含的數組順序的方法?對數組進行排序可能是一種選擇,但對於測試以外的其他任何事情都沒有用處,而且它非常複雜(並且很昂貴)。
也許做兩個數組之間的交集(或聯合,或其他),然後比較它們?我不知道它是否真的很快。 – Larme
嗯,我想過,但第一個數組包含包含另一個數組的對象。如果可能的話,我正在尋找更高效的解決方案。 – Sunder
您正在做:您自己的自定義對象到JSON。檢查與您自己的自定義對象的平等性會更有趣嗎?寫適當的自定義'isEqual:'? – Larme