geocodeAddressString iOS Objective C를 사용하여 맵을 플롯하기 위해 배열을 반복 할 수 없습니다.

user2920762

우편 번호 목록이있는 배열을 반복 한 다음 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);
    }];        
}

어떤 이유로 배열의 첫 번째 우편 번호 만 출력되었습니다. 나는 그들 모두가 반복되는 것처럼 기대했을 것입니다. 어떤 아이디어?

godel9

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] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관