startMonitoringSignificantLocationchanges не работает в swift
я добавил CLLocationManager в свое приложение, используя Swift в файле AppDelegate.
в Appdelegate.swift file,
import CoreLocation
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate, CLLocationManagerDelegate {
var locationManager: CLLocationManager!
в методе didbecomeActive:
func applicationDidBecomeActive(application: UIApplication) {
if((locationManager) != nil)
{
locationManager.stopMonitoringSignificantLocationChanges()
locationManager.delegate = nil
locationManager = nil
}
locationManager = CLLocationManager()
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.activityType = CLActivityType.OtherNavigation
locationManager.requestAlwaysAuthorization()
locationManager.startMonitoringSignificantLocationChanges()
}
если я использую startUpdatingLocation
, didUpdateLocations
метод вызывается, но не для startMonitoringSignificantLocationChanges
.
почему его не вызывают startMonitoringSignificantLocationChanges
.
Я тестирую это в симуляторе ios. Я не знаю, как проверить устройство.
2 ответов
Он работает, но очень трудно вызвать значительные изменения местоположения - это обычно происходит, когда устройство меняет вышки сотовой связи - я не думаю, что это возможно сделать с симулятором.
вам, вероятно, придется сесть на велосипед/автомобиль и проехать по крайней мере несколько километров.
есть трюк, который вы можете использовать, хотя, что вызовет значительное изменение местоположения:
включение и выключение режима Airplaine в вашем iPhone с несколькими секундными интервалами неоднократно он должен обмануть устройство, думая, что он изменил башни сотовой связи и вызвать значительное изменение местоположения.