填充 NSmutableDictionary 错误

Populating NSmutableDictionary error

您好。我有一个 NSmutableDictionary 并想填充它。

- (IBAction)addCourse:(UIButton *)sender {
    //NSMutableArray *keys = [[NSMutableArray alloc] init];
    NSMutableDictionary *contents = [[NSMutableDictionary alloc] init];

    //To add content and keys

    NSInteger numRow=[picker selectedRowInComponent:kNumComponent];//0=1st,1=2nd,etc
    NSInteger SeaRow=[picker selectedRowInComponent:kSeaComponent];//0=fall,1=spring,2=summer
    NSInteger CourseRow=[picker selectedRowInComponent:kCourseComponent];

    NSString *num=Number[numRow];
    NSString *season=Season[SeaRow];
    NSString *course=Course[CourseRow];

NSString *AddKey=[NSString stringWithFormat:@"%@ %@",num,season];

    [contents setObject:[NSMutableArray arrayWithObjects:course, nil] forKey:AddKey];
   // NSLog(@"%@", key);//test key here, it works
    NSLog(@"Dictionary: %@", [contents description]);//test dictionary here

...}

在这里,我有一个按钮,当我按下它时,numseason形成一个键,相关的course将被添加到字典中。但是,当我用

测试它时
NSLog(@"Dictionary: %@", [contents description]);

要显示字典中的所有内容,只显示我选择的最后一条记录。换句话说,当填充字典时,前面的数据被后面的数据覆盖了。请问是什么问题?

更新:感谢 Javier 的建议。它解决了这个问题。但是现在在新的情况下,只有一个键可以容纳一个内容。以下内容将覆盖旧内容,请问这是为什么?

NSMutableDictionary *内容不会被控制器的任何对象保留,当方法完成时,该对象将自动释放。

尝试将内容声明为 属性:

@property (nonatomic,strong) NSMutableDictionary *contents;