NSNumber转换对纬度和经度

时间:2012-10-08 22:28:47

标签: ios nsnumber

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?我希望从这个输出中得到每个纬度和经度对。

1 个答案:

答案 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);
    }
}