NSDictionary始终显示为null

时间:2011-07-11 04:42:33

标签: iphone objective-c nsdictionary

我在初始化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?

由于

3 个答案:

答案 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。你在两者之间进行转换吗?