0
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 に変換するにはどうすればよいですか? この出力から緯度と経度の各ペアを取得したいと考えています。

4

1 に答える 1

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);
    }
}
于 2012-10-08T22:52:26.433 に答える