Mam dwa pytania. Po pierwsze, kiedy przydzielę pamięć dla współrzędnych, zobacz poniższy kod, czy muszę zwolnić pamięć (współrzędne)? Po drugie, jak widać poniżej kodu, otrzymuję nakładkę i dodam mapę. Jednak istnieją różne znaczniki czasu, które przekazują współrzędne i powinny aktualizować mapę. Podobnie jak mapa radaru zmieniająca kształt nakładki z różnymi znacznikami czasu. Na początku bardzo dobrze się aktualizuje; jednak gdy użytkownik pomniejszy i powiększy, zaczyna migać lub migać. Zastanawiam się, dlaczego to migotanie ma miejsce? Ktoś już wcześniej doświadczył tego problemu?Flickering MapOverlay po pomniejszeniu i powiększeniu-iOS
NSArray *ants = [mapView overlays];
for(bb = 0; bb < [polygonArray count]; bb++){
int attr=[[idArray objectAtIndex:bb]floatValue];
coords = malloc(sizeof(CLLocationCoordinate2D) * [[polygonArray objectAtIndex:bb] count]);
for (int a = 0;a < [[polygonArray objectAtIndex:bb] count]; a++){
coords[a].latitude = [[[[polygonArray objectAtIndex:bb]objectAtIndex:a]objectAtIndex:0]doubleValue];
coords[a].longitude = [[[[polygonArray objectAtIndex:bb]objectAtIndex:a]objectAtIndex:1]doubleValue];
}
polygon = [[MKPolygon alloc]init];
polygon = [MKPolygon polygonWithCoordinates:coords count:[[polygonArray objectAtIndex:bb]count]];
//free(coords);
[previousPolygons addObject:polygon];
}
[mapView addOverlay:polygon];
}
}
[mapView removeOverlays:ants];
Tak, musisz zwolnić pamięć, którą wymazałeś, ale nie powinieneś zadawać tego samego pytania dwa razy na SO lub zadawać dwa pytania na jednej stronie, ponieważ możesz uzyskać odpowiedź dla każdego i możesz oznaczyć tylko jedno jako poprawne. – Craig