Лучший способ расширить единицу измерения несуществующим типом?

Я делаю приложение для здоровья и подумала, что было бы неплохо создать собственный 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)
Другие вопросы по тегам