У меня есть класс AudioManager
с членом типа AudioBufferList *
. (Это структура, объявленная в фреймворке CoreAudio
). Поскольку AudioBufferList
не является NSObject
, я не могу его сохранить, поэтому я должен его выделить/освободить (поправьте меня, если я ошибаюсь).
Мой вопрос в том, где находится «правильное» место, чтобы освободить его? В настоящее время я делаю это в методе dealloc
AudioManager
. Если я правильно понимаю, этот метод вызывается автоматически, как только сообщение release
отправляется экземпляру AudioManager
--- это правда? Существует ли какая-либо другая рекомендуемая практика использования alloc/free для не-объектов-членов объектов Objective-C?
Редактировать:
Из документации Apple:
Подклассы должны реализовывать свои собственные версии Dealloc, чтобы разрешить высвобождение любой дополнительной памяти, потребляемой объектом, например, динамически выделенного хранилища для данных или переменных экземпляра объекта, принадлежащих освобожденному объекту. После выполнения специфичного для класса освобождения, метод подкласса должен включать версии Dealloc суперкласса через сообщение супер:
Что немного проясняет ситуацию, но ценится больше информации.