我正在制作一个健康应用程序,并且认为通过扩展 HKUnit 创建一些自定义 HKUnit 来表示一些数据会很好,但是 HealthKit 文档说我们不应该扩展它或对其进行子类化,所以我转到Measurements (Dimension) 来尝试创建自定义单位。
基本上,创建自定义单位通常意味着使用基本单位类型(单位持续时间、长度、质量、能量等)和系数(转换器)。 但是如果没有与本机兼容的类型怎么办?
示例:我想创建BMI单位(kg/m^2或同等值)和BMR(千卡/天)等。 所以也许是一个具有类变量的 MetabolicUnit 类,例如 bmi、bmr 等...至于单位,希望使用 splitBy 和 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)