【发布时间】:2021-03-09 14:58:34
【问题描述】:
我正在构建一个 iOS 应用程序,我需要在其中保存用户执行的每个步骤的时间戳。我使用 CoreMotion CMPedometer,但 startUpdates 方法只输出用户从开始时间到结束时间执行的总步数。
我使用的解决方法是:在每个返回步骤块中,我使用 startDate 和 endDate,并计算每一步的秒数,然后使用每一步的秒数以线性方式设置每一步的时间戳。然后,我将下一个 startDate 设置为等于前一个块的 endDate。但这不是很精确,因为没有活动时不会返回任何块,从而导致错误的结果。
无论如何我可以获得确切的步数吗?或者至少是更精确的方法?
【问题讨论】:
-
我不明白您如何使用 pedometerUpdates 来完成这项工作。有一个历史 API (developer.apple.com/documentation/coremotion/cmpedometer/…) 可以让您查询过去的时间间隔,您可以尝试将您正在查看的时间段分成小块(比如每 10 秒?)并询问在该时间段内发生了多少步。不确定这对您来说是否足够精确?
标签: swift core-motion pedometer