Найти адреса из массива и отправить другое представление

Я пытаюсь сделать простую вещь. Я хочу найти массив адресов и показать их на карте. Но тогда мне нужно передать данные в другое представление.

Проблема в том, что мне нужно передать данные из словаря, содержащего адрес, поэтому мне нужно знать, какой именно адрес был найден. Запрос – это async и main-thread, поэтому я не могу понять, какой адрес был найден прямо сейчас.

Извините, если я говорю непонятно.

for (NSDictionary *dic in adresses) { MKLocalSearch *search = [[MKLocalSearch alloc]initWithRequest:request]; request.naturalLanguageQuery = [dic valueForKey:@"adress"]; [search startWithCompletionHandler:^(MKLocalSearchResponse *response, NSError *error) { if (response.mapItems.count == 0){ NSMutableDictionary *dictionary = [[NSMutableDictionary alloc]init]; [dictionary setValue:request.naturalLanguageQuery forKey:@"realadress"]; [dictionary setValue:@"empty" forKey:@"itemname"]; [adressesonmap addObject:dictionary]; [array addObject:@"empty"]; //HERE I NEED TO KNOW WHICH ADRESS MAPKIT TRIED TO FIND!!! } else{ for (MKMapItem *item in response.mapItems) { NSMutableDictionary *dictionary = [[NSMutableDictionary alloc]init]; [dictionary setValue:request.naturalLanguageQuery forKey:@"realadress"]; [dictionary setValue:item.name forKey:@"itemname"]; [adressesonmap addObject:dictionary]; [matchingItems addObject:item]; MKPointAnnotation *annotation = [[MKPointAnnotation alloc]init]; annotation.coordinate = item.placemark.coordinate; annotation.title = request.naturalLanguageQuery; //HERE I NEED TO KNOW WHICH ADRESS MAPKIT TRIED TO FIND!!! // here I'me trying to get address, which I tried to find before in request, but it's always one of them (from request.naturalLanguageQuery) [_mapView addAnnotation:annotation]; } } }]; } 

Как я понял, вам нужно знать, какой адрес был найден по асинхронному запросу. Вы используете блок для получения обратного вызова, поэтому вы можете просто использовать переменные из внешней области в блоке, он будет фиксировать ссылку до завершения.

 NSArray *adresses = @[ @{@"adress":@"Kyiv, Gorkogo 17"}, @{@"adress":@"New York"} ]; for (NSDictionary *dic in adresses) { MKLocalSearchRequest *request = [MKLocalSearchRequest new]; request.naturalLanguageQuery = [dic valueForKey:@"adress"]; MKLocalSearch *search = [[MKLocalSearch alloc] initWithRequest:request]; [search startWithCompletionHandler:^(MKLocalSearchResponse *response, NSError *error) { NSLog(@"\n\n\n+++++\nFound address: %@ response items:%@ ",dic[@"adress"], response.mapItems); }]; } 
  • Шифрование базы данных Sqlite, доступ к которой осуществляется через основные данные
  • setImage с помощью SDWebImage
  • Ошибка заголовка Mach-O при добавлении области в проект watchkit
  • Как найти среднее значение для группы NSNumbers из NSMutableArray
  • UItextfield инициализируется пустой строкой? не ноль? ни ноль?
  • Магическая запись, удалить из UITableView «недопустимое количество строк в разделе 0 ...»
  • Отрегулируйте размер подвалов до кадра наблюдения
  • AVFoundation - Как сохранить файл AVCaptureMovieFileDataOutput в файл?
  • Есть ли способ ускорить преобразование HTML в NSAttributedString в iOS 8?
  • Как показать 7 дней с текущей даты в ios, если сегодня последний день месяца
  • NSMutableArray addObject возвращает nil
  • Давайте будем гением компьютера.