2015-02-23 29 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中創建一個有序的字典類,並且包含源代碼。