1

我有一个荒谬的问题。

我有不同类型的值,它们插入字典中。问题是字典外的值是有效的,里面是空的。

 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"]);

日志

string 18 dictionary (null)

此问题仅发生在第二个值上,第一个“名称”不会。然而过程是一样的。

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

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

非常感谢

4

1 回答 1

7

initWithObjectsAndKeys当您使用(或)创建字典时dictionaryWithObjectsAndKeys:,一个nil值表示参数的结尾。

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

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

这会给你一个空字典,因为第一个参数是nil. 甚至没有考虑其他论点。

于 2013-02-23T01:03:56.780 回答