gpt4 book ai didi

objective-c - 谁在 Objective C 中以及何时调用 dealloc 方法?

转载 作者:太空狗 更新时间:2023-10-30 03:18:57 26 4
gpt4 key购买 nike

在 Objective C 中创建自定义类时,何时以及如何调用 dealloc 方法?这是我必须在类里面以某种方式实现的东西吗?

最佳答案

您永远不会直接发送 dealloc 消息。相反,通过释放 NSObject 协议(protocol)方法间接调用对象的 dealloc 方法(如果释放消息导致接收者的保留计数变为 0)。有关使用这些方法的更多详细信息,请参阅内存管理编程指南。

子类必须实现它们自己的 dealloc 版本,以允许释放对象消耗的任何额外内存——例如为数据动态分配的存储空间或被释放对象拥有的对象实例变量。在执行特定于类的释放之后,子类方法应该通过消息合并 dealloc 的父类(super class)版本给 super:

重要:请注意,当应用程序终止时,可能不会向对象发送 dealloc 消息,因为进程的内存在退出时自动清除——效率更高简单地让操作系统清理资源而不是调用所有内存管理方法。出于这个和其他原因,您不应该管理稀缺资源释放

 - (void)release
{
_retainCount--;
if (_retainCount == 0) {
[self dealloc];
}
}

关于objective-c - 谁在 Objective C 中以及何时调用 dealloc 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7093136/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com