Мне нужно создать статистику за месяц HKQuantityType с кумулятивным стилем агрегации, как в приложении «Здоровье» в годовом обзоре.
HKStatisticsCollectionQuery может вычислять только сумму для кумулятивных типов.
Как это работает сейчас. Я делаю 12 HKSampleQueries. Каждый квест имеет предикат с датами начала и окончания месяца. Затем я повторяю каждый результат запроса, чтобы вычислить количество дней, в которых есть образцы (один день может содержать более одного образца). По количеству дней готовности я делю сумму мотылей на количество дней.
Основная проблема в том, что если я соберу все образцы за месяц, то у меня получится около 10000 образцов. Число месяцев равно 12, поэтому для одной метрики в год требуется около 120 000 образцов.
Я запускаю его в фоновых потоках, но объем памяти составляет около 180 МБ при расчете среднего за каждый месяц, и для расчета требуется около минуты.
Есть ли возможность получить количество проб в месяц, нащупываемых по дням? Я не нашел решения для этого :(