Uiaccelerometer Exc_bad_access Crash на устройстве
-
28-09-2019 - |
Вопрос
Я сталкиваюсь с небольшим странным проблемой с внедрением Uiaccelerometer. У меня есть UiableViewController, где я не хочу использовать Uiaccelerometer, но после нажатия на ряды я хочу активировать одну внутри UiviewController, все в порядке, когда я использую симулятор, но когда я использую устройство iPhone 3G для тестирования, я получил EXC_BAD_ACCESS нажав кнопку возврата.
- (void) Таблёс: (UiableView *) TableView didselectRowatindexpath: (nsindexpath *) indexpath {shakeControl * percview = [[[shakeControl alloc] init]; // ... // Передайте выбранный объект к новому контроллеру представления. [Self.navigationController PushViewController: Percview Animated: Да]; [Выпуск Percview]; }
Он работает нормально, когда я отключаю [Percview Release];, но это не звучит как решение для. Любая идея будет оценена.
Реализация Chake Control:
- (void) viewdidload {[Super ViewDidload]; [[UiAccelerometer SharedAcceCeCelerometer] SetuppDateInterval: 1.0 / KUPDateFrequency]; [[Uiaccelerometer ShareDacceCelerometer] SetDelegate: Self]; } - (void) viewdidunload {[super viewdidunload]; [[UiAccelerometer ShareDacceCelerometer] SetDelegate: Nil]; }
Спасибо
Решение
То viewDidUnload
Метод будет вызван только в конкретных случаях, таких как предупреждение о памяти. Вы должны удалить делегат в dealloc
слишком.
Другие советы
Попробуйте освободить его после того, как вы уволите его, я не уверен, сохраняется ли pushViewController.
Вы можете установить переменные среды NszombiesEnabled & NSautreleaseFreedObjectCheckenAleaseFreedObjectCheckenalled со значением 1. Это предотвратит реализуемые объекты, то вам следует получить консольные журналы, указывающие, откуда приходит переоценка.
Вы можете использовать RUN с инструментами Performance Tools -> allocvations, как только вы знаете, какой объект перезапускается, и посмотрите каждое расположение, где сохраняется сохранение / релиз, чтобы обнаружить дисбаланс.