Иногда метод делегата акселерометра не вызывается - PullRequest
8 голосов
/ 30 октября 2008

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

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

Есть идеи?

Ответы [ 4 ]

7 голосов
/ 31 октября 2008

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

1 голос
/ 21 ноября 2008

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

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

1 голос
/ 31 октября 2008

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

1 голос
/ 30 октября 2008

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

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

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

...