我的字典虽然有价值,但却是空的

时间:2015-10-12 05:55:47

标签: ios objective-c nsdictionary

我有一个非常奇怪的问题,我有这些值的词典

NSDictionary * dic = [NSDictionary dictionaryWithObjectsAndKeys:@"1",@"usr_id",areaChoosedId,@"usr_adrs", _username.text ,@"usr_psd", _name.text ,@"usr_name",_mobile.text,@"usr_tel",_email.text,@"usr_mail",_password.text,@"usr_pwd",usr_ava,@"usr_ava", nil];

但是当我打印字典时,它会输出

{
    "usr_id" = 1;
}

虽然当我打印用户名或手机或电子邮件时都有值而不是零,那么问题是什么?

2 个答案:

答案 0 :(得分:3)

使用这个。似乎您没有获得areaChoosedId的价值。

NSMutableDictionary * dic = [[NSMutableDictionary alloc] init];
     [dic setObject:@"1" forKey:@"usr_id"];
     [dic setObject:areaChoosedId forKey:@"usr_adrs"];
     [dic setObject:_username.text forKey:@"usr_psd"];
     [dic setObject: _name.text forKey:@"usr_name"];
     [dic setObject: _mobile.text forKey:@"usr_tel"];
     [dic setObject: _email.text forKey:@"usr_mail"];
     [dic setObject: _password.text forKey:@"usr_pwd"];
     [dic setObject: usr_ava forKey:@"usr_ava"];

希望它适合你。

答案 1 :(得分:1)

您的所有值似乎都是nil。使用以下代码会产生相同的结果

NSDictionary * dic = [NSDictionary dictionaryWithObjectsAndKeys:@"1", @"usr_id",
                      nil, @"usr_adrs",
                      nil, @"usr_psd",
                      nil, @"usr_name",
                      nil, @"usr_tel",
                      nil, @"usr_mail",
                      nil, @"us‌​r_pwd",
                      nil, @"usr_ava",
                      nil];
NSLog(@"%@",dic);

日志

{
    "usr_id" = 1;
}

来自文档

  

如果任何键为nil,则引发NSInvalidArgumentException。

所以没有检查nil

注意:在第一个nil值之后,它将停止阅读下一个key/value