|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: May 2012
Сообщений: 24
|
Функция удаления переменных и тп. Кто как делает?
Мучает вопрос по поводу удаления всех слушателей и переменных, которые уже не нужны.
Конкретная ситуация: Есть класс, экземпляр которого делает кучу слушателей и переменных. Когда пользователь понажимал вдоволь по кнопочкам в итоге нажимает кнопку закрыть, в этот момент у меня экземпляр класса удаляется со сцены и делается null. Очень беспокоит всё содержимое того экземпляра, в том числе слушатели и переменные, что с ними? Я для надёжности пытаюсь прикрутить функцию, которая будет чистить всё перед удалением со сцены и заnullением экземпляра, но всё какая-то лажа получается. Поделитесь опытом, что вы делаете в таких ситуациях? |
|
|||||
Надо отписываться от всех событий и занулять ссылки перед удалением.
Можно написать свой эвентМенеджер, через который будете добавлять события чему-либо и через который будете отписывать от всех событий (к примеру функа removeAllListeners). Ну, ссылки не забыть удалить тоже.
__________________
Кодинг, багинг, алгоритминг. me @ |
|
|||||
Цитата:
Цитата:
|
|
|||||
Я имплементирую всем таким классам интерфейс IDisposable (кастомный, естественно) с методом dispose(). Реализовываю удаление слушателей и уничтожение всего и вся именно в нем.
Цитата:
__________________
тут я |
|
|||||
Регистрация: May 2012
Сообщений: 24
|
Такс расклад примерно понятен, теперь для гугла готов нормальный запрос, для изучения подробностей вышесказанного))
|
|
|||||
Регистрация: Jun 2006
Адрес: Москва
Сообщений: 461
|
Делаю один в один так же! В одном информационном поле находимся
|
|
|||||
Цитата:
и интерфейс IDisposable и метод dispose() плюс если у меня это дисплей объект, то он сам себя еще и удаляет из родителя Так что в том месте, где вызыван метод dispose() на этом экземпляре достаточно только занулить ссылку на него после вызова |
|
|||||
Я тоже. Только у меня метод называется _delete() и я без интерфейса оверрайдю его в каждом классе.
Вообще не очень понятно, почему бы адобовцам не сделать нормальный деструктор. Конечно сборщик мусора дело хорошее, но деструктор нужен, хотябы чтобы освободить объект от лишних ссылок.
__________________
interplanety |
|
|||||
Цитата:
__________________
Ну все, теперь Забава м-о-я. Гы-гы, а корабль мой! |
|
|||||
Цитата:
Нет, я с этим не согласен. Если для объекта вызывается метод dispose(), как правило там, где он создан, значит объект должен быть уничтожен, это же очевидно. На кой его еще и удалять с дисплей листа там же? Лишняя заморочка. Не вижу тут логики. Объект может удалять сам себя, и это нормально. А если метод dispose() оверрайдится, а удаление с дисплей листа происходит в суперклассе? Это избавляет от необходимости каждый раз писать код удаления. Я этот вопрос для себя уже давно отрезюмировал. Цитата:
|
Часовой пояс GMT +4, время: 22:07. |
|
« Предыдущая тема | Следующая тема » |
|
|