2015-02-23 79 views
0

我发现,当使用NSDictionary为AFNetworking POST请求创建参数时,行为是不一致的。我有多个POST,其中参数以与我在NSDictionary中创建它们的顺序相同的顺序到达服务器,现在创建一个新的请求,它们以不同的顺序到达服务器。作为参数NSDictionary行为不一致

这是我送他们:

NSDictionary *params = @{@"username": @"testuser", @"count": @"6"}; 

但是这是怎么到达服务器上:

{"count":"6","username":"testuser"} 

其对我来说重要的是,它到达服务器完全相同的,因为它我离开我的应用程序,因为我将哈希值整合在一起,无法验证它是否以不同顺序到达它的离开。

我知道NSDictionary本质上不期望保持顺序,有无论如何使用NSDictionary或另一种方式,我可以保证顺序?

在此先感谢

+0

似乎不建议在该依赖关系中构建。你不仅依赖于数据项目的顺序,而且还依赖于精确的表达,包括是否存在空白等。易于在道路上被烧毁。 – 2015-02-23 17:42:40

+0

我明白,我更感兴趣的是为什么它已经为大约20个POST发挥了作用,并突然传递了错误的顺序。我采取措施消除主要和尾随的空白,并且从来没有任何问题,所以我不关心它。 – adamtrousdale 2015-02-23 17:47:30

+0

在我看来,最简单的方法是将parms以给定顺序复制到数组中,或者在数组中排序一次。 – 2015-02-23 17:48:49

回答

1

您必须使用有序的词典类。不幸的是,Foundation框架中没有一个,但创建(甚至下载)你自己的相当容易。这个article描述了如何在Objective-C中创建一个有序的字典类,并且包含源代码。