我在初始化nsdictionary并将其添加到数组时遇到问题。我尝试了两个appoach但两个都失败了。我的字典总是空的。
Appoach1:
NSMutableDictionary *Data =[[NSMutableDictionary alloc] initWithObjectsAndKeys:@"1",@"State_Name",@"2",@"Name",@"3",@"Address",@"4",@"Ph", nil];// initialized in viewdidload
-(void)find:(NSInteger)Item{
switch (Item) {
case 0:
[Data setValue:string forKey:@"State_Name"];
break;
case 1:
[Data setValue:string forKey:@"Name"];
break;
case 2:
[Data setValue:string forKey:@"TAddress"];
break;
case 3:
[Data setValue:string forKey:@"Ph"];
break;
default:
break;
}
}
Approach2:
NSMutableDictionary *Data =[[NSMutableDictionary alloc] initWithObjectsAndKeys:str1,@"State_Name",str2,@"Name",str3,@"Address",str4,@"Ph", nil];
任何人都可以告诉这段代码有什么问题。我是否以错误的方式使用nsdictionary?
由于
答案 0 :(得分:2)
我执行了你的代码 你需要做的改变是: - 在.h文件中写: -
NSMutableDictionary *Data;
你的.m文件中的写: -
Data =[[NSMutableDictionary alloc] initWithObjectsAndKeys:@"1",@"State_Name",@"2",@"Name",@"3",@"Address",@"4",@"Ph", nil];// initialized in viewdidload
答案 1 :(得分:1)
代码看起来正确。我猜是string
是零。 setValue:forKey:
允许nil(反过来删除现有对象)
尝试setObject:forKey:
,如果value(string)为nil则会引发异常,或检查string是否为nil ...
答案 2 :(得分:0)
第一种方法: 究竟什么是你的关键以及你在初始化者中的价值? 在我看来,你混淆了订单。
除此之外:您将字符串放入字典中,但引用交换机中的nsinteger。你在两者之间进行转换吗?