首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CMAltitudeData最后有一些奇怪的数据,有什么想法吗?

CMAltitudeData最后有一些奇怪的数据,有什么想法吗?
EN

Stack Overflow用户
提问于 2017-08-14 16:36:11
回答 1查看 248关注 0票数 0

我最近一直在使用Core Motion的框架,当我试图从有限的CMAltitude类中获得更多动力时,在调用结束时遇到了一些奇怪的数据。因此,如果您调用以下命令,请重新创建:

代码语言:javascript
复制
import UIKit
import CoreMotion


class ViewController: UIViewController {

let corey = CMAltimeter()

override func viewDidLoad() {
    super.viewDidLoad()
    self.getter()
}

@objc func getter() {
    corey.startRelativeAltitudeUpdates(to: OperationQueue.main, withHandler: { (altitudeData:CMAltitudeData?, error:Error?) in
        print(String(describing: altitudeData.unsafelyUnwrapped))

仅仅出于视觉的目的,做这个非常粗糙的事情将会得到这样的响应:

代码语言:javascript
复制
Altitude -0.589237 Pressure 101093.882812 @ 2377.566172
Altitude -0.618303 Pressure 101094.234375 @ 2378.602637
Altitude -0.618303 Pressure 101094.234375 @ 2379.640150
Altitude -0.620945 Pressure 101094.250000 @ 2380.678124
Altitude -0.628872 Pressure 101094.343750 @ 2381.714421

我想知道的是最后一个部分,它看起来像秒,但实际上我不是很确定,与计时器相比,boottime time_t的数字开始+4秒,在一段时间不活动后,它会漂移,变成比boottime更短的时间。

它会因为应用程序的不活跃而消失吗?但是为什么它的启动时间甚至比启动时间还要长呢?

有人能解释这是怎么回事吗?

EN

回答 1

Stack Overflow用户

发布于 2017-08-14 17:27:13

CMAltitudeData继承自CMLogItem,这是最后一个字段timestamp的来源。根据documentation的说法,timestamp应该与设备启动后的时间相匹配。

然而,根据this的问题,启动时间确实会稍微漂移,似乎timestamp并不是简单地在每次测量时复制time_t,而是在第一次测量时复制它,然后根据可能不同的Timer递增它。与Timer相比并不是一个好主意,因为Timer运行在一个运行循环上,所以它只在你的应用程序处于前台时才能运行,即使到那时它也不是很精确。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45670490

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档