NSDictionary的值有效,inside为null

Vin*_*ins 1 xcode objective-c nsdictionary ios

我有一个荒谬的问题.

我有不同类型的值,插入字典中.问题是字典中的值是有效的,内部是null.

 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"]);
Run Code Online (Sandbox Code Playgroud)

LOG

string 18 dictionary (null)
Run Code Online (Sandbox Code Playgroud)

此问题仅发生在第二个值上,第一个"名称"没有.然而这个过程是一样的.

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

现在我好奇.可能是Xcode中的问题?

非常感谢

rma*_*ddy 7

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

无论您是nil在参数列表中输入显式(如同最后的每个人),还是使用任何带有nil值的变量,都是如此.

NSSString *name = nil;
NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:name, @"name", nil];
Run Code Online (Sandbox Code Playgroud)

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