2011-06-15 143 views
1

我正在尋找合併字典以響應用戶從服務器調用請求更多數據。合併兩個字典

我看到這個方法是一個提供給我:

- (void)addEntriesFromDictionary:(NSDictionary *)otherDictionary 

其中指出這一點:

如果兩個字典包含相同的密鑰,接收字典的 該鍵以前的值對象發送了釋放消息,並且新的值對象取代了它的位置。

但是,例如在第一次調用時,我的字典將把鍵0,1,2,3作爲字符串。不要問爲什麼這是我必須使用的數據!

然後在另一個呼叫說下4條目,而不是得到字符串鍵4,5,6,7我得到.... 0,1,2,3!

因此,如果我使用上面的方法,原始條目將始終被覆蓋。

有沒有合併這種數據的方法,所以我得到1,2,3,4,5,6,7等?

我在尋找一些醜陋的枚舉形式嗎?

+1

鑰匙必須是唯一的,我不知道你想要它做什麼。 – 2011-06-15 20:12:53

+0

這就是問題的全貌!我受到傳入數據的限制... – user7865437 2011-06-15 20:58:54

+0

您希望實現的行爲是什麼?如果您想保留舊數據並拋棄舊數據,請在newDictionary上調用addEntriesFromDictionary:並覆蓋新數據。 – 2011-06-15 21:00:29

回答

2

如果您的所有密鑰都是順序整數,則應該使用數組(或者如果無法更改源格式,則將其轉換爲數組)。 arrayByAddingObjectsFromArray:將在轉換後加入到它們中,或者在可變的情況下加入addObjectsFromArray:

+0

我想我應該擴大一點。 JSON中的傳入數據給了我一個包含類似10個條目的字典,但每個字典都使用返回的值0,1,2等,所以我的字典在隨後的調用中以鍵0,1,2等開始,儘管我呼籲接下來說在JSON中返回的數據中的4個項目,它給我的密鑰0,1,2等等,所以我需要將這些添加到收到的第一個數據的末尾...但是它們具有相同的密鑰ergo問題 – user7865437 2011-06-15 21:04:03

+0

您可以添加傳入的JSON在您的問題中的樣子,以及您希望它最終看起來像什麼? – 2011-06-15 21:06:14

+0

{「0」:{....},「1」:{....},「2」:{...}所以數字是字典鍵,每個字典中都包含字符串等。每次調用JSON都會返回一個始終從零開始的字典。因此,因爲我已經有這些值的鍵,我需要合併/追加新的JSON字典到最後 – user7865437 2011-06-16 06:35:50