Удалить юниты из HKQuantity
Есть ли способ получить значение HKQuantity без единицы после него? В настоящее время HKQuantities появляются как:
- 69201,8 м
- 543 ккал
- 2 счета / с
- и т.п.
В идеале я хотел бы получить в качестве строки averageQuantity или sumQuantity, чтобы я мог изменить способ его отображения.
1 ответ
Результат звонка [HKQuantity description]
не предназначен для отображения. В общем то [NSObject description]
в первую очередь предназначен для удобства отладки. Вы должны использовать [HKQuantity doubleValueForUnit:]
чтобы получить значение, которое вы хотите отобразить, а затем отформатируйте значение, используя NSNumberFormatter
и ваш собственный локализованный текст для устройства. HealthKit не предоставляет средства локализации для значений или единиц.
В документации Apple HealthKit указано, что вам следует использовать класс MeasurementFormatter:
Вы можете использовать MeasurementFormatter для определения таких величин, как длина, масса и энергия. Для других количеств вам необходимо выполнить преобразование и локализовать данные самостоятельно.
также упоминается на NSHipster:
Единственные случаи, когда вы все еще можете использовать EnergyFormatter, MassFormatter или LengthFormatter, - это при работе со структурой HealthKit; Эти средства форматирования обеспечивают преобразование и взаимодействие с величинами HKUnit.