iPhone Акселерометр вылетает приложение - PullRequest
1 голос
/ 18 июня 2009

У меня есть приложение на основе навигации, которое я хочу использовать акселерометр, чтобы обнаружить сотрясение и заставить представление прокрутки перейти к следующей странице. Я добавил код акселерометра в контроллер представления моего scrollView, и он прекрасно работает; встряска вызывает мой метод изменения страницы. Но когда я выгружаю scrollViewController из стека навигации, приложение вылетает.

Я настроил акселерометр в методе viewDidLoad scrollViewController и отвечаю на дрожание в акселерометре: didAccelerate: метод делегата.

Когда освобождается scrollViewController, приложение вылетает.

Чего мне не хватает?

Спасибо

Ответы [ 4 ]

3 голосов
/ 19 июня 2009

Нашел ответ в другой теме:

Как разблокировать экземпляр общего ускорителя на iPhone?

Мне нужно было установить делегат акселерометра равным нулю, когда мой scrollView освободился. Акселерометр является одноэлементным, который сохраняет ссылку на своего делегата, в данном случае мой scrollViewController. Когда мой scrollViewController выскочил из стека, ссылка осталась висеть, что привело к сбою приложения.

Спасибо Филу Нэшу за ответ!

0 голосов
/ 19 июня 2009

Простой: установив метод делегата, вы сообщили другому объекту (акселерометр), что вид прокрутки существует.

Но вы сказали ему, когда он перестал существовать, чтобы он не мог не посылать ему никаких сообщений?

Наверное, нет. Вам нужно снова установить делегата, на этот раз равным нулю.

0 голосов
/ 19 июня 2009

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

0 голосов
/ 18 июня 2009

Какова ваша частота обновления на акселерометре? Я слышал о странных вещах, происходящих, если оно слишком высоко.

...