gpt4 book ai didi

iphone - 查询实例是否已被释放

转载 作者:行者123 更新时间:2023-12-03 20:46:07 24 4
gpt4 key购买 nike

我了解内存管理规则,如果我遵循这些规则,就不需要我问什么。但是,我想知道是否有一种方法可以知道实例是否已经被释放而不抛出异常。我的应用程序使用一个对象,我的应用程序上的任何 View 都可以成为其委托(delegate)。有时,我会遇到这个众所周知的错误。我可以通过在当前委托(delegate)所有者的 dealloc 方法上将委托(delegate)设置为 nil 来避免这种情况。总之...我有什么办法知道对象是否被释放?

谢谢。

最佳答案

我可以判断指针现在是否指向垃圾吗?

不,不是真的。一旦对象被释放,它的内存就可以随时重用。。有时它实际上会指向垃圾(导致崩溃),有时它会指向不同的 Obj-C 对象,有时内存还没有被重用。

主要的异常(exception)是,如果您设置环境变量 NSZombieEnabled=YES (在 Xcode 4 中的“编辑方案”中),对象使用的内存将永远不会被释放(除非您还设置了NSDeallocateZombies=YES,左右);相反,向僵尸发送消息将导致异常。它对于调试很有用,主要是因为它告诉您已释放的实例的类名。

关于iphone - 查询实例是否已被释放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6554206/

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