![]() |
1
15
许多类型的“便利构造函数”会生成一个自动“自动释放”的对象,即新对象将由当前的NSautoReleasePool保留。您不需要手动释放这些对象-它们将在当前NSautoReleasePool释放/排出时释放。 有关便利构造函数的描述以及如何管理这些构造函数的内存,请参见本页。 http://www.macdevcenter.com/pub/a/mac/2001/07/27/cocoa.html?page=3 |
![]() |
2
7
只需遵循核心内存管理规则:如果您“拥有”变量,那么最终必须放弃所有权。您可以通过以下方式取得所有权:创建对象(alloc/new/copy)或特别取得所有权(retain)。在所有这些情况下,您都需要释放它。 如果你需要这个物体留在周围,你就需要拥有它。所以如果你知道你只需要这个方法的数字(比如把它传递到一个数组或者其他的方法中),那么就使用这个方便的方法,并把它留在那里。如果出于某种原因(例如实例变量)想要保留这个数字,那么可以安全地分配/init它。 如果你发布了一些你不拥有的东西,你会得到一个运行时错误。 |
![]() |
3
4
规则很简单,只有很少的例外:
否则
你不拥有它
不应该释放它。如果要保留对非拥有对象的引用,则应调用
在雷吉斯的术语中,彼得·霍西在他的 blog . 如果方法选择器与此regex匹配,则拥有返回的对象实例:
当然,最终的参考是 Memory Management Programming Guide for Cocoa . |
![]() |
TheKing · 为什么数组的地址可以有负值? 3 年前 |
![]() |
yurnero · MATLAB:“加载”一个快速访问功能 7 年前 |
![]() |
joe · 一页可以同时在两个工作集中吗? 7 年前 |
![]() |
Jaques · “.exe”已触发断点 7 年前 |
![]() |
adn bps · 在函数中修改变量的高效内存方法 7 年前 |
![]() |
Gauraang Khurana · C语言中分段错误的不稳定行为 7 年前 |
![]() |
Rajesh K · 如何查找设备中存在的广告垃圾? 7 年前 |