我正在制作一个健康应用程序,并认为通过扩展HKUnit来创建一些自定义的HKUnit来表示一些数据是不错的,但是HealthKit文档说我们不应该扩展它或对其进行子类化,所以我去Measurements(Dimension)尝试创建一个自定义的单元。
基本上,创建自定义单位通常意味着使用基本单位类型(单位持续时间、长度、质量、能量等)和系数(转换器)。
但是如果没有与这个单元兼容的类型呢?
示例:我要创建BMI单位(kg/m^2或等效值)和BMR(Kcal/天)等。
所以也许代谢类有如bmi,bmr等类变量。。。至于单位,希望使用dividedBy和multipliedBy来自动获取转换的单位。
有什么建议,好的实践或者已经解决的代码吗?
作为一个名称过于常见的全新框架,很难找到任何有意义的东西。
谢谢
最佳答案
您可以创建一个表示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)