Я пытаюсь показать информацию на карте от json, но ничего не происходит. Я думаю, что что-то не хватает, поэтому информация может быть показана на карте. . Управляйте работой json и получаете информацию о журнал, теперь я хотел бы знать, кто должен создать nsdictionary и массив, чтобы я мог показать тогда информацию на карте. Вот война, я до сих пор с массивом:json аннотации не отображаются на mapview
NSData *data =[NSData dataWithContentsOfURL:[NSURL URLWithString:@"URL"]];
NSMutableDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
NSLog(@"Datos Obtenidos:\n%@",dict);
NSDictionary *cortes;
NSError* error;
NSArray *jsonArray = [NSJSONSerialization JSONObjectWithData:data
options:kNilOptions
error:&error];
NSMutableArray *jsonCheckins = [NSMutableArray array];
for(NSDictionary *jsonElement in jsonArray){
InitViewController *checkin = [InitViewController checkinFromDictionary:jsonElement];
[jsonCheckins addObject:checkin];
}
Управление, чтобы добавить этот код, но до сих пор информация не showning на MapView:
- (CLLocationCoordinate2D) checkinCoordinate {
CLLocationCoordinate2D coordinate;
coordinate.latitude = self.checkin.latitud;
coordinate.longitude = self.checkin.longitud;
return coordinate;}
- (void)showCheckinAnnotation {
MKPointAnnotation *annotationPoint = [[MKPointAnnotation alloc] init];
annotationPoint.coordinate = [self checkinCoordinate];
annotationPoint.title = self.checkin.type;
annotationPoint.subtitle = self.checkin.description;
[self.mapView addAnnotation:annotationPoint];}
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation {
MKAnnotationView *annotationView= nil;
if(annotation != mapView.userLocation) {
static NSString *annotationViewId = @"annotationViewId";
annotationView = (MKAnnotationView *)[mapView
dequeueReusableAnnotationViewWithIdentifier:annotationViewId];
if (annotationView == nil) {
annotationView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:annotationViewId];
}
}
return annotationView;}
Вы уверены, что линия addAnnotation выполняется и что координаты верны? Также обратите внимание, что вы создаете простой MKAnnotationView, который по умолчанию пуст, если вы не добавляете контент или не устанавливаете изображение.Попробуйте создать MKPinAnnotationView или просто полностью удалите метод viewForAnnotation, чтобы получить представление по умолчанию. – Anna
Согласовано, 'MKPinAnnotationView' была ключевой проблемой, но в вашей' viewForAnnotation' была еще одна небольшая проблема, где, если 'dequeueReusableAnnotationViewWithIdentifier' удалось, вы никогда не устанавливали аннотацию. Кроме того, вы не делитесь 'checkinFromDictionary', но ваши другие методы используют' self.checkin', но вы никогда не устанавливаете это ('checkin' является локальной переменной вашего первого метода, поэтому, надеюсь, это не то, что вы имели в виду, потому что это выиграло работа). – Rob