ios - Core Motion 将距离转换为 KM

标签 ios swift core-motion

在我的健康应用程序中,它显示距离 0.1 公里,但在我的应用程序中,它给我的值为 0.106。我怎样才能将其更改为 1 小数?这是我用来获取当前统计数据的代码:

pedometer.queryPedometerData(from: Date().startOfDay, to: Date()) { data, error in
            guard let activityData = data, error == nil else {
                print("There was an error getting the data: \(String(describing: error))")
                return
            }
            print((Double(activityData.distance!.intValue)/Double(1000))) // Print out optional distance in of walking and running in meters. / 1000 to convert from meter to km.
        }

Print gives me: 0.106

最佳答案

您可以使用 SwiftMeasurement 类型来转换长度单位并使用MeasurementFormatter 将其显示给用户:

let number: NSNumber = 106
let measurement = Measurement(value: number.doubleValue, unit: UnitLength.meters).converted(to: .kilometers)

let mf = MeasurementFormatter()
mf.unitOptions = .providedUnit
mf.unitStyle = .medium
mf.numberFormatter.maximumFractionDigits = 1
mf.string(from: measurement)   // "0.1 km"

就您而言:

guard let value = activityData.distance?.doubleValue else { return }
let measurement = Measurement(value: value, unit: UnitLength.meters).converted(to: .kilometers)

let mf = MeasurementFormatter()
mf.unitOptions = .providedUnit
mf.unitStyle = .medium
mf.numberFormatter.maximumFractionDigits = 1
mf.string(from: measurement)   // "0.1 km"

关于ios - Core Motion 将距离转换为 KM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53580747/

相关文章:

html - 如何将 HTML 标签添加到 UITextView Swift Xcode 中的字符串

ios - SpriteKit中的加速度计不起作用

ios - 日期格式 日/月/年 HH :mm z is crashing while converting string to Date Swift 3. 0

ios - RestKit + 核心数据 : How to save an object locally only after the remote save is successful?

ios - png 中的阴影路径与阴影

ios - queryPedometerData 返回 nil 步数,即使记录了步数

swift - CoreMotion 转换 Iphone 间距 : raidians to degrees

java - 如何从 fabric 或 Jenkins 以编程方式下载 .apk 和 .ipa 文件?

swift - 计算从两个 UIDatePickers Swift 4 中选择的日期值

ios - Swift 4 : UIView Subclassing, 获取父 View