设置嵌套的 NSDictionary 和 NSArray 值
Posted
技术标签:
【中文标题】设置嵌套的 NSDictionary 和 NSArray 值【英文标题】:Setting nested NSDictionary and NSArray values 【发布时间】:2013-03-25 21:07:24 【问题描述】:我需要能够设置嵌套的 NSDictionary 和 NSArray 的值。例如:
字典 大批 字典 键1 价值1
获取 key1 并设置 value1 的最简单方法是什么? setValueForKeyPath 显然不适用于 and 数组。
【问题讨论】:
让我们考虑一下:dictionary_a array_b dictionary_c key1, value1
。我可以想象如何使用正确的键将 array_b 从 dictionary_a 中取出。但是,如何从array_b 中取出dictionary_c 呢?你知道它的索引吗?
【参考方案1】:
使用 Objective-C 的 Object Subscripting。
想象以下嵌套字典和数组:
dictionaryA => arrayB => dictionaryC
arrayB
存储在 @"arrayKey"
下的 dictionaryA
中,并且
dictionaryC
存储在索引dictionary_index
到arrayB
。
dictionaryC 应设置为value1
for @"key1"
;
要设置key1,你需要做:
(NSDictionary*)((NSArray*)(dictionaryA[@"arrayKey"])[dictionary_index])[@"key1"] = value1;
有关详细信息,请参阅 Clang 3.3 documentation: OBJECTIVE-C LITERALS 中的对象下标部分。
【讨论】:
注意:这假设您知道在哪个键下存储 arrayB 结束在哪个索引位于 dictionaryC。如果你有一个充满字典的arrayB,这是一种非常方便的方法来遍历它们,使用下标语法array[index]
并设置你想要的键。
这正是我想要的。谢谢!以上是关于设置嵌套的 NSDictionary 和 NSArray 值的主要内容,如果未能解决你的问题,请参考以下文章
以 NSDictionary 作为对象的嵌套数组上的 NSPredicate
如何在 PLIST 中访问嵌套的 NSDictionary?
获取嵌套 JSON 的 NSArray/NSDictionary