只能向NSMutableDictionary添加一个对象

时间:2014-04-20 03:13:10

标签: ios

我有一个datepicker和一个UIBarButtonItem,当按下UIBarButtonItem时,它会调用一个方法将所选日期添加到NSMutableDictionary。代码如下所示:

diaryDateArr = [[NSArray alloc] initWithObjects:diaryDate, nil];
NSString *dateKeyStr = [NSString stringWithFormat:@"dateKey%d", dicDates.count+1];
diaryKeyStrArr = [[NSArray alloc] initWithObjects:dateKeyStr, nil];
dicDates = [[NSMutableDictionary alloc] initWithObjects:diaryDateArr forKeys:diaryKeyStrArr];
NSArray * allKeys = [dicDates allKeys];
for(NSString *key in [dicDates allKeys]) { NSLog(@"%@",[dicDates objectForKey:key]);}
NSLog(@"Count : %d", [allKeys count]);

然而,这一切看起来都有效,直到我计算出NSMutableDictionary中有多少个键并且count返回为1,即使我点击两个不同日期的两次按钮理论上应该(或者至少我想要的)应该添加另一个日期,该日期在日期选择器中选择进行计数2.但它永远不会从1

更改

如何将对象和键放入字典?

此致

1 个答案:

答案 0 :(得分:1)

Count返回字典中的条目数 - 一个。您可以通过执行以下操作来访问它:[dicDates valueForKey:diaryKeyStrArr];

如果再次单击该按钮,则会将字典设置为新字典。也许试试这个:

if (!dicDates) {
    dicDates = [[NSMutableDictionary alloc] initWithObjects:diaryDateArr forKeys:diaryKeyStrArr];
} else {
    dicDates[dateKeyStr] = diaryDateArr;
}