objective-c - Objective-C 中的内存管理和将指针设置为 nil

标签 objective-c memory-management garbage-collection

当对象的计数变为 0 或调用 dealloc 时,指向对象的指针是否会变为 nil?为什么或为什么不?

最佳答案

不,不会,因为释放没有改变指针的能力。只有当您将一个指针 传递给该指针时,它才能做到这一点。

如果你想确保它被设置为零,你必须自己做。

有些人认为这是一种很好的做法,有些人认为这是浪费时间,因为您的代码结构应该在解除分配后(直到重新分配)不使用指针。

我实际上倾向于后一个阵营,但我可以理解为什么人们想要保护自己免于访问释放的内存(防御性编程很少是一个坏主意)。

关于objective-c - Objective-C 中的内存管理和将指针设置为 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2032266/

相关文章:

objective-c - 在 objective-c 中,如何区分类和类的实例?

java-私有(private)内部类实例没有被垃圾收集

objective-c - 如何在不影响MKMapView性能的情况下放置MKAnnotation

c++ - 为什么调用大尺寸的 mmap() 不会失败?

memory-management - delete() 是立即释放内存还是需要 runtime.GC() 来释放它?

c - 如何在C中连接字节数组

Android FLAG_NEW_TASK 和 FLAG_SINGLE_TOP Activity 未被垃圾收集

c# - 正在收集回调委托(delegate)?

iphone - UIFont字体带名称: residing on heap and never destroyed

ios - 无法通过 UIView 通过 swift 创建 pdf?