Является ли хорошей практикой для объекта в Objective-C совершать самоубийство? То есть для объекта, чтобы объявить [self dealloc]
, где -dealloc
разрешает упорядоченное свертывание, как обычно? Каковы основные риски?
Как это происходит у меня есть конкретный пример, пользовательский объект таймера, который расширяет NSObject и включает в себя экземпляр NSTimer и NSUInteger, который установлен для ограничения количества срабатываний таймера. Когда время истекло, объект сообщает таймеру -invalidate
, а затем совершает самоубийство, вызывая его метод -dealloc
. Поскольку это автоматический режим, мы не беспокоимся о том, чтобы отслеживать объект, и не знаем, когда наступит подходящий момент для его освобождения.
Для более подробного объяснения см. Мой пост на здесь .