比较复杂的NSDictionary

时间:2015-09-28 14:55:12

标签: ios objective-c compare nsdictionary

我有一个方法[Order toJSON],它将我的类映射到一个必须发送到服务器的复杂NSDictionary。要发送它,我使用NSJsonSerialization将其转换为字符串。

字典的格式为:

@{ 
  @"key": @"value", 
  @"order": @[ 
    @{ @"name": @"obj1", @"content": @[ ... ] },
    @{ @"name": @"obj2", @"content": @[ ... ] }
  ] 
}

我正在编写单元测试以检查NSDictionary是否正确。问题是我实际上不知道数组的顺序。我可以在obj1之前拥有obj2。 当我使用- [NSDictionary isEqualToDictionary]时,由于对象的顺序,它有时会失败。

有没有办法比较这些字典而不比较它包含的数组的顺序?之前对数组进行排序可能是一种选择,但除了测试之外,它对于其他任何东西都是无用的,而且它非常复杂(而且价格昂贵)。

1 个答案:

答案 0 :(得分:1)

我认为将数组转换为NSCountedSet s会有所帮助。 NSCountedSet忽略对象的顺序,并且还会计算重复的元素,因此您将获得预期的比较。