【发布时间】:2011-06-06 17:29:52
【问题描述】:
我有一个 AudioManager 类,其成员类型为 AudioBufferList *。 (这是在CoreAudio 框架中声明的结构)。由于AudioBufferList 不是NSObject,我无法保留它,所以我必须分配/释放它(如果我错了,请纠正我)。
我的问题是,释放它的“正确”位置在哪里?目前我正在使用AudioManager 的dealloc 方法。如果我理解正确,一旦将release 消息发送到AudioManager 的实例,就会自动调用此方法——是这样吗?关于在 Objective-C 对象的非对象成员上使用 alloc/free,还有其他推荐的做法吗?
编辑:
来自 Apple 的文档:
子类必须实现自己的 版本的 dealloc 以允许 释放任何额外的内存 被对象消耗——例如 为数据动态分配的存储空间 或拥有的对象实例变量 释放的对象。后 执行特定类别 释放,子类方法 应该包含超类版本 通过消息给super的dealloc:
这让事情变得更清晰了 - 但我们也感谢您提供更多见解。
【问题讨论】:
标签: objective-c ios4 dealloc