我正在从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'
答案 0 :(得分:1)
因为[[categorias objectAtIndex:i] objectForKey:@"latitud"]
将是NSNumber
或NSString
个实例。您不能直接在字典中存储double
(或任何其他原语)。
因此,您需要将该实例转换为double:
[[[categorias objectAtIndex:i] objectForKey:@"latitud"] doubleValue]
(幸运的是,它适用于NSNumber
和NSString
个实例)
答案 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];