微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法使用stopUpdatingLocation和stopRelativeAltitudeUpdates停止更新

如何解决无法使用stopUpdatingLocation和stopRelativeAltitudeUpdates停止更新

我正在为watchOS开发一个滑翔伞应用程序,它可以显示和记录诸如海拔,速度,滑行率等值。

到目前为止,我已经构建了UI,集成了一些设置,并且正在接收压力传感器数据和gps位置。 为了节省电池寿命,我添加一个“停止按钮”,用于触发locationManager.stopUpdatingLocation和CMAltimeter.stopRelativeAltitudeUpdates函数。但是在控制台中,我可以看到静止的位置和海拔高度的更新。

我将代码上传https://github.com/LukeCrouch/iAlti/tree/main/iAlti%20WatchKit%20Extension。 有趣的文件可能是ControlsView,在这里我声明并调用相关函数

    func stopLocation() {
        self.locationManager.stopUpdatingLocation()
    }

我非常感谢我能获得的所有帮助,这是我第一次编写App! :)

欢呼卢克

解决方法

问题是这一行:

import numpy as np
import matplotlib.pyplot as plt

#xs = np.linspace(1,21,200)

plt.figure(figsize=(6,3))
plt.hlines(y='Test1',xmin=1929,xmax=1978,colors='red',linestyles='-',lw=2,label='Test1')
plt.hlines(y='Test2',xmin=1800,xmax=1991,colors='blue',label='Test2')
plt.hlines(y='Test3',xmin=1930,xmax=2007,colors='green',label='Test3')
plt.show()

每次重新生成ControlsView时,该行都会重新运行。因此,LocationManager是一个不同的LocationManager。因此,您要告诉一个LocationManager的CLLocationManager停止更新,但这与开始的CLLocationManager是一个不同的

相反,将其设置为一个单例环境对象,以便您的应用仅具有 one 个LocationManager和一个 one CLLocationManager。这样,每次与之交谈时,您都在同一个交谈。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。