2009-04-11 4 views
1

Я создал переменный акселерометр:Как вы отпустите общий экземпляр ускорителя на iPhone?

UIAccelerometer *objAccelerometer; 

что я связывающий к экземпляру sharedAccelerometer:

objAccelerometer = [UIAccelerometer sharedAccelerometer]; 
objAccelerometer.delegate = self; 

Когда я выпускаю этот вид (для загрузки другого вида), экземпляр акселерометра вызывает программа умереть. (Если я его прокомментировал, я могу переключаться между представлениями без проблем).

У меня была аналогичная проблема с NSTimer, но как только я назвал:

[myTimer invalidate]; 

(до выхода и переключения взглядов) все работало нормально.

Как должным образом освободить делегата или освободить или отпустить акселерометр?

ответ

6

Вы не выпускаете общий акселерометр - вы его никогда не сохраняли (и не должны) - это синглтон.

Акселерометр имеет ссылку на ваш объект. Для его освобождения просто установите для него свойство delegate равным nil (поскольку это свойство, оно будет высвобождать ссылку на ваш объект).

+0

Это было! Я думал, что может быть функция (например, релиз или недействительность), но ноль отлично работает! –

+0

Нет проблем. Прочитайте синтаксис свойств Objective C 2.0s, чтобы быть уверенным, что вы знаете, что здесь происходит – philsquared

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

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