2013-03-25 94 views
3

我需要能夠設置嵌套的NSDictionary和NSArray的值。例如:設置嵌套的NSDictionary和NSArray值

字典 陣列 字典 key1的 值1

什麼是去鍵1和設置值1的最簡單的方法? setValueForKeyPath顯然不適用於和數組。

+0

讓我們考慮:'dictionary_a array_b dictionary_c {key1,value1}'。我可以想象如何從dictionary_a中獲取array_b:使用正確的鍵。但是,那麼如何才能從array_b中獲取dictionary_c?你知道它的索引嗎? – Jean 2013-03-25 21:13:01

回答

2

使用Objective-C的Object Subscripting

想象以下嵌套詞典和數組:

dictionaryA => arrayB => dictionaryC 
  • arrayB存儲@"arrayKey"dictionaryA,和 dictionaryC存儲在索引dictionary_indexarrayB
  • dictionaryC應設置爲value1@"key1";

要設置鍵1,你需要做的:

(NSDictionary*)((NSArray*)(dictionaryA[@"arrayKey"])[dictionary_index])[@"key1"] = value1; 


更多信息請參閱部分對象的下標Clang 3.3 documentation: OBJECTIVE-C LITERALS

+0

注意:這假設你知道在哪個關鍵字存儲的數組B結束於哪個索引位於dictionaryC。如果你有一個數組B充滿字典,這是一個非常方便的方法來循環它們,使用下標語法'array [index]'並設置你想要的鍵。 – Jean 2013-03-25 21:27:05

+0

這正是我所期待的。謝謝! – Devroot 2013-03-27 17:17:40