У меня есть словарь, загруженный из plist. Я перебираю свой массив, который содержит в общей сложности 4000 длин и латов.
Я обрабатываю цикл for в фоновом потоке с помощью GCD (поскольку он блокирует пользовательский интерфейс во время обработки) и добавляю наложения в эту задачу, как показано ниже.
Все работает нормально, за исключением того, что добавление всех наложений на карту появляется только после завершения цикла полного массива. Я бы хотел, чтобы я перебирал массив и добавлял наложение x1 за раз к представлению, а не ждал, пока общая сумма будет обработана.
-(void)loadOverlays{
dispatch_async( dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
// Add code here to do background processing
int d;
for (d = 0; d < [[tempDict allValues]count]; d++) {
//Get values from dic
values = [tempDict allValues];
id aValue = [values objectAtIndex:d];
latCircle = [aValue objectAtIndex:1];
lngCircle = [aValue objectAtIndex:2];
geoFCenter = CLLocationCoordinate2DMake([latCircle floatValue], [lngCircle floatValue]);
geoFRadius = 10000.0; // 10,000 metres
//Add Zone circle
circle = [MKCircle circleWithCenterCoordinate:geoFCenter radius:geoFRadius];
[circle setTitle:@"2"];
[self.dragMap addOverlay:circle];
}
});
}