Иногда метод делегата акселерометра не вызывается

StackOverflow https://stackoverflow.com/questions/249241

Вопрос

У меня есть приложение, которое использует акселерометр. Иногда приложение запускается без обновления данных акселерометра. Перезапуск приложения, иногда проблема сохраняется, иногда нет. И даже более странно, иногда я могу попробовать 10 раз, и все работает, как ожидалось. Это ошибка, или, может быть, я что-то упускаю. Отладка, этот код никогда не вызывается, когда акселерометр не обновляется:

- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration;

Есть идеи?

Это было полезно?

Решение

Я наконец-то нашел работу. Это известная ошибка. Таким образом, я нашел обходной путь, чтобы запустить поток и проверить, был ли вызван делегат акселерометра, если он есть, затем выйти из потока, если нет, установить делегат снова и повторно тестировать, пока делегат акселерометра вызывается. Я проверил это тщательно, и он работает без нареканий. Я надеюсь, что это будет решено в следующем обновлении iPhone OS.

Другие советы

У меня такая же проблема. Это случается, вероятно, 1/20 раз с приложением, которое я сделал из образца CrashLanding. После того, как я заметил это в своем приложении, я взял свежую версию Crashlanding, установил ее и, наконец, заставил запускаться при сбое акселерометра.

Я не знаю, как это исправить. Честно говоря, я ненавижу акселерометр ... по крайней мере, для управления играми: - \

Кроме того, акселерометр иногда выходил из строя при запуске «акселерометра» пример проекта.

Как уже упоминали другие, это известная ошибка; Я зарегистрировал ошибку с Apple (идентификатор ошибки Bug Reporter 6093028), возможно, другие также сделали это. Насколько я знаю, все приложения, использующие UIAccelerometer (включая примеры приложений Apple), страдают от этой проблемы, хотя частота встречаемости варьируется.

FWIW, мое приложение широко используется и использует акселерометр, и у меня никогда не было этой проблемы.

Мой вариант использования может отличаться от вашего: я включаю его только по запросу пользователя, задолго до запуска приложения.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top