【发布时间】:2011-01-07 05:03:02
【问题描述】:
dict 是 NSMutableDictionary;数组是 NSMutableArray 并且不是 nil;
代码:
[dict setObject:array forKey:@"key"];
没有错误或警告,但字典为空,没有设置或添加任何内容。
当我使用下面的代码时,它可以工作:
[dict setObject:[NSArray arrayWithArray:array] forKey:@"Key"];
谁能告诉我为什么?
更新:
dict 和 array 都是局部变量并且已经被初始化。dict 是 nil。
NSLog(@"%@", array) 打印了数组的值:
({"Title":"firstTitle","Date":"20110101"},{"Title":"secondTitle","Date":"20110102"})
更新:
我搞错了,array一开始不为空,后来在follow操作中清空了。
感谢@Bavarious。
【问题讨论】:
-
如果
dict和array都不是nil,那么您的代码是正确的。你能提供更多代码吗?您如何测试dict、array和[dict objectForKey:@"key"]是否为nil?还有,dict是实例变量、属性还是局部变量? -
第一个例子中你是如何创建数组的?另外,您得到的确切错误是什么?
-
它正在工作;它正在显示数组。检查以下代码。 NSMutableArray *array = [[NSMutableArray alloc] initWithCapacity:0]; [数组 addObject:@"Temp"]; NSMutableDictionary *dic = [[NSMutableDictionary alloc] initWithCapacity:0]; [dic setObject:array forKey:@"array"]; NSLog(@"%@",dic);
-
@Bavarious 我已经更新了问题。@WrightsCS 没有错误。
-
如果
dict为nil,那么它还没有被实例化,-objectForKey:将始终返回nil。
标签: iphone nsmutablearray nsarray nsmutabledictionary