Лучший способ расширить единицу измерения несуществующим типом?
Я делаю приложение для здоровья и подумала, что было бы неплохо создать собственный HKUnit для представления некоторых данных путем расширения HKUnit, но в документации HealthKit сказано, что мы не должны расширять или создавать подклассы, поэтому я пошел в Measurements (Dimension), чтобы попробовать создание собственного модуля.
По сути, создание пользовательской единицы измерения обычно означает использование базового типа единицы измерения (единица измерения длины, длины, массы, энергии и т. Д.) И коэффициента (преобразователя). Но как насчет того, когда нет типа, совместимого с этим устройством?
Пример: я хочу создать единицу BMI (кг / м ^2 или эквивалент) и BMR (ккал / день) и т. Д. Так что, возможно, класс MetabolicUnit с переменными класса, такими как bmi, bmr и т. Д. Что касается единицы, Надеемся, что мы будем использовать splitBy и multipliedBy для автоматического перевода переведенных единиц.
Любой совет, хорошие практики или уже решенный код? Будучи довольно новой структурой со слишком распространенным именем, трудно найти что-то значимое. Спасибо
1 ответ
Вы можете создать экземпляр 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)