Функция «didUpdateToLocation» вызывается без изменений

Я инициализирую locationManager следующим образом:

if (!self.locManager) { self.locManager = [[CLLocationManager alloc] init]; self.locManager.delegate = self; [locManager startMonitoringSignificantLocationChanges]; } 

мое устройство не движется, и все время вызывается «didUpdateToLocation». Что может быть проблемой? благодаря

didUpdateToLocation может обновляться по ряду причин, хорошей стратегией для обработки этого является постепенное фильтрация результатов на основе метки времени, а затем требуемой точности.

Apple – хороший пример в примере приложения LocateMe :

 - (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation { // test the age of the location measurement to determine if the measurement is cached // in most cases you will not want to rely on cached measurements NSTimeInterval locationAge = -[newLocation.timestamp timeIntervalSinceNow]; if (locationAge > 5.0) return; // test that the horizontal accuracy does not indicate an invalid measurement if (newLocation.horizontalAccuracy < 0) return; // test the measurement to see if it is more accurate than the previous measurement if (self.bestEffortAtLocation == nil || self.bestEffortAtLocation.horizontalAccuracy > newLocation.horizontalAccuracy) { // store the location as the "best effort" self.bestEffortAtLocation = newLocation; // test the measurement to see if it meets the desired accuracy // // IMPORTANT!!! kCLLocationAccuracyBest should not be used for comparison with location coordinate or altitidue // accuracy because it is a negative value. Instead, compare against some predetermined "real" measure of // acceptable accuracy, or depend on the timeout to stop updating. This sample depends on the timeout. // if (newLocation.horizontalAccuracy <= locationManager.desiredAccuracy) { // we have a measurement that meets our requirements, so we can stop updating the location // // IMPORTANT!!! Minimize power usage by stopping the location manager as soon as possible. // [self stopUpdatingLocation:NSLocalizedString(@"Acquired Location", @"Acquired Location")]; } } } 

Вы проверяете различия в местоположении? CoreLocation также вызывает обратные вызовы, когда другие атрибуты, такие как точность, заголовок или изменение скорости

startMonitoringSignificantLocationChanges должен дать вам начальное исправление, после чего вы получите обратные вызовы для «значительных изменений» (изменение ячейки ячейки и т. д.),

  • Плиты карт не загружаются в Xcode 7.3 Watch Simulator
  • Вычисление плиток для отображения в MapRect при «увеличенном увеличении» за пределами набора оверлея
  • Это ошибка с MKMapKitDelegate mapView: didUpdateUserLocation?
  • Как перехватывать события касания объектов MKMapView или UIWebView?
  • didUpdateUserLocation не вызывается, когда view для userLocation является настраиваемым
  • iOS 7 MapKit Crash: EXC_BAD_ACCESS в
  • Жесты для subviews & MKMapView в iOS - базовая iOS
  • Обнаружение затрагивает MKOverlay в iOS7 (MKOverlayRenderer)
  • iOS различают, какой аксессуар выносок используется
  • Перемещение MKCircle на MKMapview и перетаскивание MKMapview
  • Необлученное исключение: позиция CALayer содержит NaN при выполнении анимации
  • Давайте будем гением компьютера.