0

我正在查看IOBufferMemoryDescriptor. 它说“......除非另有说明,否则您还负责释放您分配的缓冲区。” .

IOBufferMemoryDescriptor::free也存在。我的问题是:我应该使用freerelease(或两者)进行清理吗?

4

1 回答 1

1

free()使用 删除最后一个句柄时自动调用OSSafeReleaseNULL。(这在内部调用release(),但通常最好使用宏。)

所以,永远不要直接调用该free()方法,你只需要在你自己的子类中重写它的上下文中关心它。OSObject始终对派生类使用引用计数机制。

于 2020-10-20T09:39:18.687 回答