从NSMutableArray中检索“int”?

时间:2012-04-07 23:50:50

标签: objective-c nsmutablearray int

我正在阅读一些json输出......只是一些整数。第一个NSLog完美地输出了东西。在这种情况下,有3个元素。我不明白如何访问特定元素。

NSMutableArray *json = (NSMutableArray*)[NSJSONSerialization JSONObjectWithData:data   options:kNilOptions error:&error];

NSLog(@"json: %@ \n",json);

int count = (int)[json objectAtIndex:0];
int count1 = (int)[json objectAtIndex:1];
int count2 = (int)[json objectAtIndex:2];
NSLog(@"count %i %i %i\n",count,count1,count2);

3 个答案:

答案 0 :(得分:3)

NSArray包含一个对象,不应该将其强制转换为int,这不起作用。检查您的代码并确定NSJSONSerialization的输出。如果它是一个整数,它通常是NSNumber的实例,所以请尝试:

int count = [[json objectAtIndex:0] intValue];

答案 1 :(得分:3)

这些可能是NSNumbers。试试这个:

int count = [[json objectAtIndex:0] intValue];
int count1 = [[json objectAtIndex:1] intValue];
int count2 = [[json objectAtIndex:2] intValue];
NSLog(@"count %i %i %i\n",count,count1,count2);

答案 2 :(得分:2)

NSArrayNSMutableArray不能将int和其他非id对象用作键或值,因此强制转换不起作用。最有可能的是NSNumber类型的值,因此您需要在其上调用intValue

int count = [[json objectAtIndex:0] intValue];
int count1 = [[json objectAtIndex:1] intValue];
int count2 = [[json objectAtIndex:2] intValue];