我有一个荒谬的问题。
我有不同类型的值,它们插入字典中。问题是字典中的值有效,内部为空。
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中可能是个问题吗?
非常感谢
答案 0 :(得分:7)
使用initWithObjectsAndKeys
(或dictionaryWithObjectsAndKeys:
)创建字典时,nil
值表示参数的结束。
无论您是在参数列表中输入显式nil
(就像每个人在最后都做的那样),或者是否使用任何具有nil
值的变量,都是如此。
NSSString *name = nil;
NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:name, @"name", nil];
这会给你一个空字典,因为第一个参数是nil
。其他论点都没有被看过。