Я пытаюсь создать приложение, которое использует весовые данные HealthKit и отправляет его на удаленный сервер. Должен ли я помещать завершениеHandler в «успешный» крючок асинхронного запроса на сервер или должен быть вызван для завершения Handler, если ошибка равна нулю (похоже, так написано большинство примеров).HKObserverQuery completeHandler
0
A
ответ
0
Завершение Handler всегда следует называть. Если вы его не назовете, в том числе в случае ошибок, Apple в конечном итоге перестанет вызывать ваш запрос в фоновом режиме. Следует иметь в виду, что данные HealthKit зашифровываются, когда экран устройства включен, и если он имеет код прохода. Хотя он зашифрован, данные не читаются, хотя HKObserverQuery все равно уведомит вас о том, что что-то изменилось (вы просто не можете сказать, что было изменено). Шифрование делает фоновую обработку данных HealthKit практически невозможной, если пользователь не отключает свой код доступа/touchid (что явно нецелесообразно).
Мне непонятно, в какой части использования HKObserverQuery у вас есть вопрос. Не могли бы вы предоставить фрагменты кода, демонстрирующие вопрос? – Allan