objective-c - Objective-C/中 drain、release、dealloc 和 retain 之间的区别

标签 objective-c memory-management

你好,我想知道 Objective-C 中 drain、release、dealloc 和 retain 之间的区别。

最佳答案

  • retain 增加对象的引用计数
  • release 减少对对象的引用
  • drain 用于 ONLY NSAutoreleasePool 对象的释放,因为一些与 Objective C 垃圾收集相关的奥秘
  • dealloc 在对象的 retainCount 为 0 时由系统调用。您可以在此处清理对象拥有的各种东西(如解构器或终结器)。除了在 dealloc 例程结束时调用 [super dealloc] 外,您应该永远直接调用它。

你真的应该通读一下 Apple 的内存管理 documentation .

关于objective-c - Objective-C/中 drain、release、dealloc 和 retain 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1659545/

相关文章:

objective-c - AVAssetReader/Writer 只适用于某些设备?

objective-c 内存管理--对象保证存在多长时间?

ruby - 在 Ruby 中删除类实例?

c++ - 检测堆损坏

iOS 应用程序内存限制

ios - 以编程方式获取设备 UDID(40 位数字 ID)

ios - 如何将 indexPath 从 segue 传递到目标 View ?

ios - Mapbox中的错误:只有工厂方法可以具有'swift_name'属性

ios - `tableView:heightForHeaderInSection:` 调用了未实现它的委托(delegate)

r - 如何使用大文件防止 R 循环中的内存问题?