我正在创建一个健康应用程序,并认为通过扩展HKUnit创建一些自定义HKUnit以表示一些数据会很好,但HealthKit文档说我们不应该扩展或子类化它,所以我去了测量(尺寸)以尝试创建自定义单位。
基本上,创建自定义单位通常意味着使用基本单位类型(单位换算,长度,质量,能量等)和系数(转换器)。 但是当没有与这个单位兼容的类型时呢?
示例:我想创建BMI单位(kg / m ^ 2或等值)和BMR(Kcal /天)等。 所以也许是一个带有类变量的MetabolicUnit类,比如bmi,bmr等......至于单位,希望使用divideBy和multipliedBy来自动获得翻译单位。
任何建议,良好做法或已经解决的代码? 作为一个具有太常见名称的相当新的框架,很难找到任何有意义的东西。 感谢
答案 0 :(得分:1)
您可以创建一个代表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)