位置管理器未在外部更新 ViewController
Location Manager Not Updating Outside ViewController
我知道之前有人问过这个问题,但检查这些问题并没有解决我的问题。
我的 ViewController
处理 CoreLocation
并且有自己的位置管理器。效果很好,获取位置。
ViewController
调用另一个名为 FootPath
的 class,这也需要它自己的位置管理器。
我知道位置管理器的单例方法,但现在我必须做很多 re-structuring 所以这不是一个选择。
FootPath 的 init
方法:
init(motionManager: CMMotionManager, expectedNavigationPattern: [StepDirection]) {
self.expectedNavigationPattern = expectedNavigationPattern
self.motionManager = motionManager
super.init()
self.locationManager = CLLocationManager()
self.locationManager.delegate = self
self.locationManager.requestAlwaysAuthorization()
self.locationManager.distanceFilter = 1
self.locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation
self.locationManager.startUpdatingHeading()
}
FootPath
创建自己的位置管理器。我可以在调试时看到它已分配。但是标题没有更新。
Footpath
也符合CLLocationManagerDelegate
.
这曾经有效,我检查了 back-up 并且它正在更新标题。虽然我找不到区别。我通过 FileMerge
.
查找
我还尝试了 FootPath classes 位置管理器分配在调度 queue 中定位主要 queue 或重新启动设备,但它没有改变。
有什么想法吗?
首先,我不确定此解决方案能否解决您的问题。但只需尝试删除 FooPath 和 ViewController class 中的位置管理器初始化并创建位置管理器 constant
到您的 AppDelegate 并从您的 class.
获取此 locationManager
您可以像这样在 AppDelegate 中创建 locationManager;
let locationManager = CLLocationManager()
之后,您可以在 自定义 class 中使用初始化的 locationManager。
private let locationManager = AppDelegate().locationManager
试试这个,如果有效请告诉我。
我知道之前有人问过这个问题,但检查这些问题并没有解决我的问题。
我的 ViewController
处理 CoreLocation
并且有自己的位置管理器。效果很好,获取位置。
ViewController
调用另一个名为 FootPath
的 class,这也需要它自己的位置管理器。
我知道位置管理器的单例方法,但现在我必须做很多 re-structuring 所以这不是一个选择。
FootPath 的 init
方法:
init(motionManager: CMMotionManager, expectedNavigationPattern: [StepDirection]) {
self.expectedNavigationPattern = expectedNavigationPattern
self.motionManager = motionManager
super.init()
self.locationManager = CLLocationManager()
self.locationManager.delegate = self
self.locationManager.requestAlwaysAuthorization()
self.locationManager.distanceFilter = 1
self.locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation
self.locationManager.startUpdatingHeading()
}
FootPath
创建自己的位置管理器。我可以在调试时看到它已分配。但是标题没有更新。
Footpath
也符合CLLocationManagerDelegate
.
这曾经有效,我检查了 back-up 并且它正在更新标题。虽然我找不到区别。我通过 FileMerge
.
我还尝试了 FootPath classes 位置管理器分配在调度 queue 中定位主要 queue 或重新启动设备,但它没有改变。
有什么想法吗?
首先,我不确定此解决方案能否解决您的问题。但只需尝试删除 FooPath 和 ViewController class 中的位置管理器初始化并创建位置管理器 constant
到您的 AppDelegate 并从您的 class.
locationManager
您可以像这样在 AppDelegate 中创建 locationManager;
let locationManager = CLLocationManager()
之后,您可以在 自定义 class 中使用初始化的 locationManager。
private let locationManager = AppDelegate().locationManager
试试这个,如果有效请告诉我。