当值为NSMutableArray时,NSMutableDictionary setObject:forKey不起作用

时间:2011-01-07 05:03:03

标签: iphone nsmutablearray nsarray nsmutabledictionary

dict是NSMutableDictionary; array是NSMutableArray并且不是nil;

代码:

[dict setObject:array forKey:@"key"];

没有错误或警告但是dict为null,没有设置或添加任何内容。

当我使用下面的代码时,它可以工作:

[dict setObject:[NSArray arrayWithArray:array] forKey:@"Key"];

谁能告诉我为什么?

更新 dictarray都是局部变量并且已初始化。dict为零。

NSLog(@"%@", array)已打印数组的值:

({"Title":"firstTitle","Date":"20110101"},{"Title":"secondTitle","Date":"20110102"})

UPDATE:

我犯了一个错误。array一开始并不是空的,但我在跟进操作中将其清空。

感谢@Bavarious。

3 个答案:

答案 0 :(得分:0)

你知道你使用的是“密钥”的不同大写,对吗? @"Key"@"key"不同。

答案 1 :(得分:-1)

我认为你没有在1st语句中初始化数组。检查是否分配了内存?

答案 2 :(得分:-1)

代码似乎是正确的。您的array很可能是nil。 使用arrayWithArray时,插入的对象将是一个数组,即使其值本身设置为nil