우편 번호 목록이있는 배열을 반복 한 다음 geocodeAddressString 함수를 호출하여 MapView에 플로팅하려고합니다. 여기에 코드가 있습니다.
CLGeocoder *geocoder = [[CLGeocoder alloc] init];
for (int i = 0; i < [[appDelegate offersFeeds] count]; i++)
{
NSString *plotAddress = [[[appDelegate offersFeeds] objectAtIndex:i] valueForKey:@"addressline"];
[geocoder geocodeAddressString:plotAddress completionHandler:^(NSArray *placemarks, NSError *error) {
NSLog(@"%@", plotAddress);
}];
}
어떤 이유로 배열의 첫 번째 우편 번호 만 출력되었습니다. 나는 그들 모두가 반복되는 것처럼 기대했을 것입니다. 어떤 아이디어?
CLGeocoder 객체를 생성 할 때 한 번에 하나의 주소 만 지오 코딩하는 데 사용할 수 있습니다. 여러 개의 병렬 요청이 필요한 경우 각 요청에 대해 CLGeocoder 객체를 생성해야합니다.
이를 수행하는 한 가지 방법은 다음과 같습니다 (ARC가 활성화 된 경우).
for (int i = 0; i < [[appDelegate offersFeeds] count]; i++)
{
CLGeocoder *geocoder = [[CLGeocoder alloc] init];
NSString *plotAddress = [[[appDelegate offersFeeds] objectAtIndex:i] valueForKey:@"addressline"];
[geocoder geocodeAddressString:plotAddress completionHandler:^(NSArray *placemarks, NSError *error) {
NSLog(@"%@", plotAddress);
}];
}
추가 정보...
Apple은 한 번에 가질 수있는 병렬 요청 수에 제한을 둘 수 있으므로 많은 요청을 수행하는 경우 일괄 적으로 지오 코딩을 수행해야합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다