NSNumber *a;
for(NSDictionary *item in[res valueForKey:@"snapshot"])
{
a=[item valueForKey:@"lat"];
NSLog(@"%@",a);
b=[item valueForKey:@"lng"];
NSLog(@"%@",b);
}
在控制台上写的: (“29.13”,“29.38”,“29.31”,“29.30”,“29.43”) (“94.13”,“94.38”,“93.30”,“94.58”,“94.34”)`
我怎样才能让每个值转换为double?我希望从这个输出中得到每个纬度和经度对。
答案 0 :(得分:1)
根据您的NSLog
,您从valueForKey:
获得的值为NSArrays
,而不是NSNumber
。所以只需通过这些阵列即可。
for(NSDictionary *item in[res valueForKey:@"snapshot"])
{
NSArray* latitudesList = [item valueForKey:@"lat"];
NSArray* longitudesList = [item valueForKey:@"lng"];
NSInteger idx = 0;
NSInteger nb = MIN( latitudesList.count , longitudesList.count );
for(NSInteger idx = 0; idx < nb; ++idx)
{
double lat = [[latitudesList objectAtIndex:idx] doubleValue];
double lng = [[longitudesList objectAtIndex:idx] doubleValue];
NSLog(@"Pair #%d = { %f , %f }", idx, lat, lng);
}
}