Objective-C 内存管理原则

内存管理方针
用于内存管理的基本模型采用引用计数的环境之中提供的组合方法中定义在NSObject协议和标准方法的命名约定。NSObject类也定义了一个方法:dealloc,当调用一个对象时自动回收,本文描述了Cococa程序中你需要知道的基本规则,同时提供了许多正确的使用示例
基本的内存管理规则方针
内存管理模型是基于对象的所有权。任何对象都可能有一个或者多个所有者,只要一个对象至少还有一个所有者,就让他继续存在,如果一个对象没有所有者,正在运行的系统就会把它自动消灭。为了清楚的确保你是否拥有一个对象,Cocoa制定了以下政策:
你拥有所有你创建的对象
你可以通过“alloc”、 “new”、“copy”或者“mutableCopy” (例如alloc、 newObject、 或者 mutableCopy)等方法去创建一个对象
你可以通过“retain”去获取一个对象的所有权
一个被收到的对象通常保证依然有效当他在这个方法内被接收时,这个方法也可以安全的返回调用程序对象。你可以在两种下使用“retain”:(1)、在一个访问方法的实现方法或者“init”方法时,为了获取你想要作为一个属性值去存储的一个对象的所有权。(2)、为了防止一个对象因为一些其他的操作后果而从此被失效(如用来解释避免你正在使用的对象重新分配单元)
当你不再需要他的时候,你必须放弃你所拥有的对象的所有权
你通过给它发送一个release消息或者一个autorelease消息来放弃一个对象的所有权。在Cococa术语中,放弃一个对象的所有权通常称为“释放”对象
你不能释放一个不是你所拥有的对象的所有权
这仅仅是上述政策规则的必然结果,明确的规定
 
以上纯属自己翻译,水平有限,大神如果有好的资源可以分享
 
原文地址:https://www.cnblogs.com/496668219long/p/4423611.html