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