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

LIA*_*IAL 3 json compare objective-c nsdictionary

请帮助我解决我的麻烦:我无法与价值进行比较以了解成功的结果是否成功。我获取 json-object 作为 NSDictionaty:

    NSDictionary *returnDictionary = [NSJSONSerialization JSONObjectWithData:responseObject                                                                                                                                       options:0 error:nil];
Run Code Online (Sandbox Code Playgroud)

之后我得到了 key: code 的价值

    [returnDictionary objectForKey:@"code"];
Run Code Online (Sandbox Code Playgroud)

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

Tho*_*ing 5

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

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

[[returnDictionary objectForKey:@"code"] isEqualToString:@"1"]  
Run Code Online (Sandbox Code Playgroud)

或者

[[returnDictionary objectForKey:@"code"] intValue] == 1
Run Code Online (Sandbox Code Playgroud)

  • 小注: `intValue` 也可用于 `NSString`。 (2认同)