Как подождать, пока местоположение не будет полностью найдено? (Core Location)

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

-(IBAction)locateMe; {
self.locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
[locationManager startUpdatingLocation];

Затем я реализовал didUpdateToLocation:

-(void)locationManager:(CLLocationManager *)manager 
       didUpdateToLocation:(CLLocation *)newLocation
       fromLocation:(CLLocation *)oldLocation; { 

       NSLog(@"Found location! %f,%f",newLocation.coordinate.latitude,newLocation.coordinate.longitude);
 }

Ранее я делал гораздо более сложные вещи в didUpdateToLocation , но когда я протестировал некоторые вещи, я понял, что первое обнаруженное местоположение было неточным в в мере. Итак, я поместил туда вызов NSLog , и он дал мне результат, аналогичный приведенному ниже ...

Found location! 39.594093,-98.614834
Found location! 39.601372,-98.592171
Found location! 39.601372,-98.592171
Found location! 39.611444,-98.538196
Found location! 39.611444,-98.538196

Как вы можете видеть, сначала он дает мне неправильное значение, что вызывало проблемы в моем приложении, потому что оно указывало неверное местоположение.

Итак, вот мой вопрос. Могу ли я подождать, пока менеджер местоположения завершит поиск наиболее точного местоположения?

Заранее спасибо!

РЕДАКТИРОВАТЬ: Мне нужно что-то вроде этого:

if (newLocation.horizontalAccuracy <= locationManager.desiredAccuracy) {
}

Но он никогда не вызывается !

9
задан Chris Hanson 28 December 2010 в 02:22
поделиться