如何更改嵌套NSDictionary中的值?

时间:2014-07-29 10:08:11

标签: ios objective-c nsmutablearray uitextfield nsmutabledictionary

我动态生成了textfield,并将其添加到名为field的可变数组中:

[field addObject:textfield];

textfield包含textfield的所有属性(如占位符等...)。

现在我有一个带有键值对的可变字典,如下所示:

NSMutableDictionary *m = [[NSMutableDictionary alloc] init];
[m setObject:@{} forKey:@"V"];

现在我想要实现的是我想要使用值m.V[field[i].placeholder]更改@"abc"的值。它位于for循环内。

我想要的是添加对应于field [i] .placeholder key的值。

我不知道如何编写上面的代码。

有人可以帮忙吗?我希望这个问题很清楚。

编辑:

for(UITextField *f in field){
    [[m objectforkey:@"V"] setobject:@"abc" forkey:@"placeholder"];
}

这就是我想要实现的目标。但它显示错误。

2 个答案:

答案 0 :(得分:0)

您的问题不明确,但我想这是您问题的答案。

for (UITextField *textfield in [m valueForKey: @"V"]){

textField.placeholder = @"abc";

}

答案 1 :(得分:0)

怀疑问题是内部字典是不可变的,因为您使用了较新的Objective-C文字语法。相反,使用以下代码创建字典,该代码显式创建内部可变字典:

NSMutableDictionary *m = [[NSMutableDictionary alloc] init];
NSMutableDictionary *inner = [NSMutableDictionary dictionaryWithObjectsAndKeys:
    @"value1", @"key1",
    @"value2", @"key2",
    nil];
[m setObject:inner forKey:@"V"];