gpt4 book ai didi

ios - didUpdateLocations 没有被调用 swift 3

转载 作者:行者123 更新时间:2023-11-28 12:22:08 27 4
gpt4 key购买 nike

我正在开发一个需要使用计时器每 10 分钟更新一次位置的屏幕。除此之外,它只需要在第一次加载时和 View 再次出现在用户面前时更新位置。一旦用户转到另一个 View ,它应该停止监视。

我有一个应该执行此操作的代码,但问题是 didUpdateLocations 方法在任何时候都没有被调用。此外, map 不显示当前位置(我使用模拟位置)。

我已经正确设置了权限,应用程序在设置为仅显示位置时运行良好。我需要这样做以减少电池消耗。

这是我的相关代码:

viewDidLoad中:

if #available(iOS 8.0, *) {
self.locationManager.requestAlwaysAuthorization()
}
self.locationManager.allowsBackgroundLocationUpdates = true
self.locationManager.distanceFilter = 1000
self.locationManager.activityType = CLActivityType.automotiveNavigation
self.locationManager.desiredAccuracy = kCLLocationAccuracyBest
self.locationManager.pausesLocationUpdatesAutomatically = false
self.locationManager.startUpdatingLocation()
self.map.showsUserLocation = true

viewWillAppear中:

self.map.showsUserLocation = true
self.locationManager.startUpdatingLocation()

viewWillDisappear中:

self.map.showsUserLocation = false
self.locationManager.stopUpdatingLocation()

didUpdateLocations 中:(最后一行)

self.locationManager.stopUpdatingLocation()

定时器功能:(这被称为好)

Timer.scheduledTimer(timeInterval: 600.0, target: self, selector: #selector(HomePageViewController.updateLocationFromTimer), userInfo: nil, repeats: true)

@objc func updateLocationFromTimer()
{
self.locationManager.startUpdatingLocation()
}

我还尝试使用以下代码捕获任何错误:

func locationManager(_ manager: CLLocationManager, didFailWithError error: Error) {
print(error.localizedDescription)
}

但它没有被调用。

我很想知道为什么没有更新位置以及为什么 map 没有显示位置。请帮忙。

最佳答案

确保分配委托(delegate):

self.locationManager.delegate = self

关于ios - didUpdateLocations 没有被调用 swift 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44486022/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com