objective-c - 将 NSDictionary 值(id?)转换为 NSString 或 NSNumber 以进行比较

标签 objective-c json compare nsdictionary

请帮我解决我的麻烦: 我无法与值(value)进行比较,以了解成功与否。 我获取 json-object 作为 NSDictionaty:

    NSDictionary *returnDictionary = [NSJSONSerialization JSONObjectWithData:responseObject                                                                                                                                       options:0 error:nil];

然后我得到键的值:代码

    [returnDictionary objectForKey:@"code"];

如果返回值等于 1 就可以了,但问题是我不知道键“代码”的类型值。我试图比较 id、NSString、NSNumber,但都失败了。我应该比较什么类型的对象?

最佳答案

您是否使用比较运算符 (==) 来比较您的对象?

如果是这样,您没有比较对象的值,而是比较它们的内存地址。
如果 [returnDictionary objectForKey:@"code"] 返回的对象是 NSString 类型,您应该使用 NSString 的 isEqualToString: 如果它返回一个 NSNumber 实例,您可以将该对象的 intValue 与 1 进行比较。

[[returnDictionary objectForKey:@"code"] isEqualToString:@"1"]  

[[returnDictionary objectForKey:@"code"] intValue] == 1

关于objective-c - 将 NSDictionary 值(id?)转换为 NSString 或 NSNumber 以进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16719485/

相关文章:

objective-c - 不明白方法声明中出现 "Expected a type"编译错误的原因,定义类型时

ios - 在运行时在 iOS 上添加框架

java - 无法获取 json : Infinite recursion

asp.net-mvc - 如何将 json 对象发送到 MVC 4 中的 Controller Action 方法

java - 将接收数据包与字符串 UDP 协议(protocol)进行比较

objective-c - 在 Objective-C 中填充对象

ios - 使用 MKMapView、核心位置和核心数据

JSON后台处理和本地通知

python - 两个列表的更简洁比较?

string - 如何测试一个字符串是否包含多个子字符串之一?