将JSON对象传递给地图坐标

时间:2014-02-26 23:20:31

标签: ios double

我正在从JSON填充NSArray。

NSArray被称为“分类”,来自对象的纬度和经度在MySQL数据库中存储为double。

现在我正在尝试在JSON对象的mapView标记上显示。

 for ( int i=0;i<[categorias count];i++){

        NSString *lalitudText = [[categorias objectAtIndex:i] objectForKey:@"nombreEmpresa"];
        NSLog(@"QUE ES ESTO--> %@",lalitudText);

        GMSMarker *marker = [[GMSMarker alloc] init];
        double latitud = [[categorias objectAtIndex:i] objectForKey:@"latitud"];
        double longitud = [[categorias objectAtIndex:i] objectForKey:@"longitud"];
        marker.position = CLLocationCoordinate2DMake(latitud, longitud);
        marker.title = @"Las Palmas";
        marker.snippet = @"Gran Canaria";
        marker.map = mapView_;

    }

在以下行中,我收到编译器警告:

double latitud = [[categorias objectAtIndex:i] objectForKey:@"latitud"];
double longitud = [[categorias objectAtIndex:i] objectForKey:@"longitud"];

警告是:

Initializing 'double' with an expression of incompatible type 'id'

3 个答案:

答案 0 :(得分:1)

因为[[categorias objectAtIndex:i] objectForKey:@"latitud"]将是NSNumberNSString个实例。您不能直接在字典中存储double(或任何其他原语)。

因此,您需要将该实例转换为double:

[[[categorias objectAtIndex:i] objectForKey:@"latitud"] doubleValue]

(幸运的是,它适用于NSNumberNSString个实例)

答案 1 :(得分:1)

只需将NSNumber转换为double

double latitud = [[[categorias objectAtIndex:i] objectForKey:@"latitud"] doubleValue];
double longitud = [[[categorias objectAtIndex:i] objectForKey:@"longitud"]doubleValue];

答案 2 :(得分:1)

试试这个:

double latitud = [[[categorias objectAtIndex:i] objectForKey:@"latitud"] doubleValue];
double longitud = [[[categorias objectAtIndex:i] objectForKey:@"longitud"] doubleValue];