-4

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

什么是正确的方法?

我当前的代码导致崩溃:

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

请注意,此崩溃是我在加载类后第二次执行此操作,而不是第一次。所以问题肯定是我正在重新分配它。

在任何情况下(无论是否崩溃),我都希望在 ARC 项目中以一种无泄漏的方式来处理这个问题。

4

3 回答 3

2

我认为你需要这样做

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

当您使用它时,请不要再次分配/初始化,而是您可以执行以下操作

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

并在字典中再次设置值

 [myDict setValue:@"Abc" forKey:@"xyz"];
于 2012-12-01T07:38:34.390 回答
1

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

于 2012-12-01T07:03:54.133 回答
0

Simply alloc+init it again, all your previous values will be released and new object will be reassigned to the same object/Dictionary.

于 2012-12-01T07:04:24.990 回答