2016-04-12 3 views
0

Кажется, HKStatisticsCollectionQuery невероятно медленный в iOS 9.3. Это может занять до 40 секунд, чтобы возвращать почасовые статистические данные за год для активных калорий, где это заняло 1 или менее раньше.Как ускорить HKStatisticsCollectionQuery в iOS 9.3?

let predicate = HKQuery.predicateForSamplesWithStartDate(anchorDate, endDate: endDate, options: []) 
    let query = HKStatisticsCollectionQuery(quantityType: quantityType, 
     quantitySamplePredicate: predicate, 
     options: statisticOptions, 
     anchorDate: anchorDate, 
     intervalComponents: interval) 
+1

Как выглядит ваш предикат? – Wilmar

ответ

0

После многих часов проб и ошибок я обнаружил, что HKStatisticsCollectionQuery не поддерживает потоковую передачу. Для того, чтобы решить эту проблему, я использовал этот ASync NSOperation: https://gist.github.com/calebd/93fa347397cec5f88233

И, конечно, NSOperationQueue для того, чтобы заставить HKStatisticsCollectionQuerys быть выполнены синхронно. Как только я сделал это, каждый запрос занял менее половины секунды.

+0

Не могли бы вы объяснить, как именно использовать этот класс? Вот ссылка на блог http://swiftgazelle.com/2016/03/asynchronous-nsoperation-why-and-how/, но не знаю, как выполнить запрос с этим классом для извлечения данных. –

 Смежные вопросы

  • Нет связанных вопросов^_^