NSDictionary的值有效,inside为null

时间:2013-02-23 00:40:24

标签: ios objective-c xcode nsdictionary

我有一个荒谬的问题。

我有不同类型的值,它们插入字典中。问题是字典中的值有效,内部为空。

 NSString *name = [NSString stringWithFormat:@"%@",_nameTextField.text];
 NSString *icon = [NSString stringWithFormat:@"%i",itemIcon];

 NSDictionary *dictionary = [[NSDictionary alloc]initWithObjectsAndKeys:name,@"name",
icon,@"icon", nil];

NSLog(@"string %@ dictionary %@",icon,[dictionary objectForKey:@"icon"]);

LOG

string 18 dictionary (null)

此问题仅发生在第二个值上,第一个“名称”没有。但过程是一样的。

更奇怪的是,这段代码,我在另一个类中使用,相同且运行良好。

现在我想知道。在Xcode中可能是个问题吗?

非常感谢

1 个答案:

答案 0 :(得分:7)

使用initWithObjectsAndKeys(或dictionaryWithObjectsAndKeys:)创建字典时,nil值表示参数的结束。

无论您是在参数列表中输入显式nil(就像每个人在最后都做的那样),或者是否使用任何具有nil值的变量,都是如此。

NSSString *name = nil;
NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:name, @"name", nil];

这会给你一个空字典,因为第一个参数是nil。其他论点都没有被看过。