如何在ARC项目中重新初始化NSMutableDictionary?

时间:2012-12-01 07:01:50

标签: iphone objective-c ios automatic-ref-counting nsmutabledictionary

我有一个类级别的NSMutableDictionary对象,我需要初始化并重新初始化。由于我的项目是ARC,我不确定是否可以使用发布。

这样做的正确方法是什么?

我当前的代码导致崩溃:

myDict = [[NSMutableDictionary alloc] initWithObjectsAndKeys: value1,@"key1", 
value2,@"key2", nil];

请注意,这次崩溃是在我加载课程后第二次这样做的时候,而不是第一次。所以问题肯定是我正在重新分配它。

无论如何(崩溃与否),我想要一个无泄漏的方法来处理ARC项目。

3 个答案:

答案 0 :(得分:2)

我认为你需要这样做

 -(void)ViewDidLoad
 {
      [super viewDidLoad];
      myDict =  [[NSMutableDictionary alloc] initWithObjectsAndKeys: value1,@"key1", value2,    @"key2", nil];
 }

当你再次使用它时,请不要再次分配/ init,而是可以执行以下操作

if([[myDict allKeys]count])
{
     [myDict removeAllObjects];
}

并在字典中再次设置值

 [myDict setValue:@"Abc" forKey:@"xyz"];

答案 1 :(得分:1)

不确定“重新初始化”是什么意思,但您可以随时删除字典中的所有键和值并将其重新放入。

答案 2 :(得分:0)

只需再次分配+ init,将释放所有先前的值,并将新对象重新分配给同一对象/词典。