У меня проблема в моем приложении. Я пытаюсь определить местонахождение пользователя с максимальной точностью, чтобы определить его почтовый индекс. В настоящее время у меня есть кнопка, при нажатии запускает метод с именем 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) {
}
Но он никогда не вызывается !