我有这个奇怪的问题。NSDictionary 没有返回正确的整数值。

服务器的 JSON 响应代码。

 
  1. {

  2. "status":"ok",

  3. "error_code":0,

  4. "data" : [],

  5. "msg":"everything is working!"

  6. }

JSON 将被转换为 NSDictionary。

 
  1. NSError *error = nil;

  2. NSDictionary *jsonDict = [NSJSONSerialization

  3. JSONObjectWithData:data

  4. options:NSJSONReadingMutableContainers

  5. error: &error];

我访问的 NSDictionary 值,使用下面的代码。

 
  1. int error_code = (int)[jsonDict valueForKey:@"error_code"]

  2. NSLog(@"%i", error_code);

  3. The log outputs the following: 143005344

我甚至试过 objectForKey,我把同样的反应。

 

 

解决方法 1:

是的它输出的值的指针,这就是为什么你看到此日志输出。

你不能强制转换为整数的指针和期待值。

int error_code = [[jsonDict valueForKey:@"error_code"] intValue];

或者如果您想要使用现代目标 c

int error_code = [jsonDict[@"error_code"] intValue];
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐