我有一个方法[Order toJSON],它将我的类映射到一个必须发送到服务器的复杂NSDictionary。要发送它,我使用NSJsonSerialization
将其转换为字符串。
字典的格式为:
@{
@"key": @"value",
@"order": @[
@{ @"name": @"obj1", @"content": @[ ... ] },
@{ @"name": @"obj2", @"content": @[ ... ] }
]
}
我正在编写单元测试以检查NSDictionary是否正确。问题是我实际上不知道数组的顺序。我可以在obj1之前拥有obj2。
当我使用- [NSDictionary isEqualToDictionary]
时,由于对象的顺序,它有时会失败。
有没有办法比较这些字典而不比较它包含的数组的顺序?之前对数组进行排序可能是一种选择,但除了测试之外,它对于其他任何东西都是无用的,而且它非常复杂(而且价格昂贵)。
答案 0 :(得分:1)
我认为将数组转换为NSCountedSet
s会有所帮助。 NSCountedSet
忽略对象的顺序,并且还会计算重复的元素,因此您将获得预期的比较。