Использование делегатов в NSOperation

Я пытаюсь использоватьCLLocationManager вNSOperation, В рамках этого мне требуется способностьstartUpdatingLocation затем дождитесь получения CLLocation перед завершением операции.

В настоящее время я сделал следующее, однако метод делегата никогда не вызывается. Пожалуйста, кто-нибудь может посоветовать, в чем проблема?

- (void)main
{
    @autoreleasepool {
        if (self.isCancelled)
            return;

        // Record the fact we have not found the location yet
        shouldKeepLooking = YES;

        // Setup the location manager
        NSLog(@"Setting up location manager.");
        CLLocationManager *locationManager = [[CLLocationManager alloc] init];
        locationManager.delegate = self;
        locationManager.desiredAccuracy = kCLLocationAccuracyBest;
        [locationManager startUpdatingLocation];

        while (shouldKeepLooking) {

            if (self.isCancelled)
                return;

            // Do some other logic...
        }
    }
}

- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
    // None of this ever seems to be called (despite updating the location)
    latestLocation = [locations lastObject];
    [manager stopUpdatingLocation];
    shouldKeepLooking = NO;
}

Ответы на вопрос(4)

Ваш ответ на вопрос