2012-02-15 53 views
1

我试图在NSMutableDictionary直接操纵数组:操作数组中的NSDictionary

[[myDictionary objectForKey: @"key"] addObject: object]; 

这不起作用!我甚至试过类型铸造:

[(NSMutableArray*)[myDictionary objectForKey: @"key"] addObject: object]; 

这也没有工作!

奏效的唯一途径是:

NSMutableArray *array = [myDictionary objectForKey: @"key"]; 
[array addObject: object]; 
[myDictionary setObject: array forKey: @"key"] 

是否有办法来操纵字典类似于第一代码片段的阵列;即不需要创建一个新的数组,操作它然后保存它?

+3

你说的“这行不通”是什么意思?编译器错误?崩溃?例外?错误的结果? – Costique 2012-02-15 16:31:37

+0

你确定它不起作用吗?因为你所有的变种都是平等的? – Max 2012-02-15 16:32:27

+1

并且您确定这是您遇到问题的确切代码?因为第一次尝试完美。 – 2012-02-15 16:32:49

回答

0

的问题是,我不分配对象添加使用下面的代码之前NSMutable字典即阵内:

[myDictionary addObject: [[NSMutableArray alloc]init] forKey: @"key"]; 
1

您是否正在从文件或URL加载NSDictionary?从API文档:“该字典包含的对象是不可变的,即使字典是可变的。”

+0

没有字典在运行时加载 – 2012-02-15 16:38:41

+1

这并不能告诉我们你是如何加载它 – 2012-02-15 16:39:45

+0

我有对象然后我就用[myDictionary ADDOBJECT的数组:数组forKey:@“key”]; – 2012-02-15 16:44:06