ios - NSDictionary中的值是有效的,内部为null

标签 ios objective-c xcode nsdictionary

我有一个荒谬的问题。

我有不同类型的值,它们插入字典中。问题在于字典中的值是有效的,内部的值为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"]);

日志
string 18 dictionary (null)

仅在第二个值上会出现此问题,第一个“名称”则不会。但是过程是一样的。

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

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

非常感谢

最佳答案

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

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

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

这给您一个空的字典,因为第一个参数是nil。甚至没有其他的论点被看过。

关于ios - NSDictionary中的值是有效的,内部为null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15035605/

相关文章:

ios - 在 UserDefaults 中保存并添加整数值并在添加值后检索

ios - Xcode 11,使用 iOS 10.3.3 设备,设备和模拟器对话框中没有 "Connect via Network"

ios - 使用 Objective-C 和 Swift 创建内存泄漏

ios - 管理两个目标 iOS 的单个屏幕

ios - 使用 react-native-navigation 将 React Native 应用程序与现有的 iOS 应用程序集成

ipad - 从 pdf 文档创建 iOS 应用程序

ios - 如何将 NSString 值转换为 NSData?

swift - 应用程序名称未显示在 xcode 控制台输出中

objective-c - Xcode for How to call function from one class to another class function in iPhone Apps

xcode - 麦 cocoa : Can't release a window to get back its memory