title: Set address string with reverseGeocodeLocation: and return from method
body: <p>I'm try to localize a start and end point to an address string, so that I can store it into <code>NSUserDefaults</code>. The problem is that the method continues executing and does not set my variable.</p>
  
  <pre><code>NSLog(@"Begin");
  
  __block NSString *returnAddress = @"";
  
  [self.geoCoder reverseGeocodeLocation:self.locManager.location completionHandler:^(NSArray *placemarks, NSError *error) {
      if(error){
          NSLog(@"%@", [error localizedDescription]);
      }
  
      CLPlacemark *placemark = [placemarks lastObject];
  
      startAddressString = [NSString stringWithFormat:@"%@ %@\n%@ %@\n%@\n%@",
                            placemark.subThoroughfare, placemark.thoroughfare,
                            placemark.postalCode, placemark.locality,
                            placemark.administrativeArea,
                            placemark.country];
      returnAddress = startAddressString;
  
      //[self.view setUserInteractionEnabled:YES];
  }];
  NSLog(returnAddress);
  
  NSLog(@"Einde");
  </code></pre>
  
  <p>This is what my application debugger shows:</p>
  
  <blockquote>
    <p>start<br>
    einde</p>
  </blockquote>
  
  <p>If for example the address of my location is : "Mainstreet 32, CITY". Then what i would want to see is the following:</p>
  
  <blockquote>
    <p>Start<br>
    Mainstreet 32, CITY<br>
    Einde  </p>
  </blockquote>
  
  <p>The problem is that my code does not wait for my <code>CLGeocoder</code> to finish, so my variable <code>returnAddress</code> is not set when it is returned, and it is empty.</p>
  
  <p>Does anyone know how to work around this?</p>