次のコードを使用して、ジオコード 2 の場所名を座標に転送しようとしています。
CLGeocoder *geocoder = [[CLGeocoder alloc] init];
[geocoder geocodeAddressString:place inRegion:nil completionHandler:^(NSArray* placemarks, NSError* error){ NSLog(@"a"); NSLog(@"count %d", [placemarks count]); for (CLPlacemark* aPlacemark in placemarks) { CLLocationCoordinate2D coord = aPlacemark.location.coordinate; NSLog(@"%f, %f", coord.latitude, coord.longitude); } }]; [geocoder geocodeAddressString:place inRegion:nil completionHandler:^(NSArray* placemarks, NSError* error){ NSLog(@"b"); NSLog(@"count %d", [placemarks count]); for (CLPlacemark* aPlacemark in placemarks) { CLLocationCoordinate2D coord = aPlacemark.location.coordinate; NSLog(@"%f, %f", coord.latitude, coord.longitude); } }];
簡単にするために、1 つの地名を 2 回変換します。コードを実行すると、最初のジオコーディング完了ハンドラーのみが実行されます。残りのジオコーディング完了ハンドラーは無視されます。
なぜそれが起こるのか、そして複数の場所を変換する方法を知りたい.