使用不存在的复杂测量类型扩展测量单元的最佳方法?

问题描述 投票:0回答:1

我正在制作一个健康应用程序,并且认为通过扩展 HKUnit 创建一些自定义 HKUnit 来表示一些数据会很好,但是 HealthKit 文档说我们不应该扩展它或对其进行子类化,所以我转到Measurements (Dimension) 来尝试创建自定义单位。

基本上,创建自定义单位通常意味着使用基本单位类型(单位持续时间、长度、质量、能量等)和系数(转换器)。 但是如果没有与本机兼容的类型怎么办?

示例:我想创建BMI单位(kg/m^2或同等值)和BMR(千卡/天)等。 所以也许是一个具有类变量的 MetabolicUnit 类,例如 bmi、bmr 等...至于单位,希望使用 splitBy 和 multipliedBy 自动获取翻译单位。

有什么建议、好的实践或已经解决的代码吗? 作为一个相当新的框架,名字太常见,很难找到任何有意义的东西。 谢谢

swift swift3 healthkit measurement nsmeasurementformatter
1个回答
2
投票

您可以创建代表 BMI 的

HKUnit
实例,而无需子类化或扩展
HKUnit
。以下是两个示例:

let bmiUnit = HKUnit(from: "kg/m^2")

或者

let meter = HKUnit.meter()
let bmiUnit = HKUnit.gramUnit(with: .kilo).unitDivided(by: meter).unitDivided(by: meter)
© www.soinside.com 2019 - 2024. All rights reserved.