Wie erstelle ich einen Funktionsaufruf in ios, um zu warten, bis der Block innerhalb dieser Funktion vollständig ausgeführt ist?

In der folgenden Funktion habe ich einen Block verwendet. Aber wenn ich diese Funktion aufrufe, wird sie zurückgegeben, noch bevor der Block ausgeführt wird. Ich habe verstanden, dass Block inturn die Threads verwendet und separat ausgeführt wird, damit die Funktion nicht darauf wartet, dass sie zurückkehrt. Aber gibt es eine andere Möglichkeit, die Funktionsausführung warten zu lassen, oder eine andere Möglichkeit, die Funktionalität dieses Blocks zu erreichen, ohne den Block selbst zu verwenden?

-(int)findCurrentZip
{
        CLLocation *userLocation = [[CLLocation alloc] initWithLatitude:[self findCurrentLatitude]
                                                              longitude:[self findCurrentLongitude]];
         int zipcode;
        self.myGeocoder = [[CLGeocoder alloc] init];
        [self.myGeocoder 
         reverseGeocodeLocation:userLocation
         completionHandler: (id)^(NSArray *placemarks, NSError *error) {
             if (error == nil && [placemarks count] > 0)
             {
                 NSLog(@"Placemarks: %@",placemarks);
                 CLPlacemark *placemark = [placemarks objectAtIndex:0]; 
                 NSLog(@"Country = %@", placemark.country);
                 NSLog(@"Postal Code = %@", placemark.postalCode);
                 zipcode = (int)placemark.postalCode;
                 NSLog(@"Locality = %@", placemark.locality);
                 NSLog(@"Country%@",[placemarks lastObject]);
             }
             else if (error == nil && [placemarks count] == 0)
             {
                 NSLog(@"No results were returned.");
             }
             else if (error != nil)
             {

             }
        }];

        return zipcode;
    }

Antworten auf die Frage(1)

Ihre Antwort auf die Frage