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

最新文章

  1. C#设置IE代理及遇到问题的解决方案
  2. uri,url.urn
  3. 2.1 LibCurl编程流程(转)
  4. 【转】为什么我要用 Node.js? 案例逐一介绍
  5. IE8中JSON.stringify方法对自动转换unicode字符的解决方案
  6. 剑指offer—第二章算法之二分查找(旋转数组的最小值)
  7. MySQL Replication 常用架构
  8. Unix/Linux环境C编程入门教程(19)Red Hat Entetprise Linux 7.0环境搭建
  9. java读取配置文件的几种方法
  10. IS-A 和 HAS-A
  11. Codeforces Round #350 (Div. 2)解题报告
  12. 实现Launcher编辑模式(1) 壁纸更换
  13. ios ViewController的生命周期分析和基本使用逻辑
  14. Dynamics CRM 将实体从高级查找列表中移除不可见
  15. LeetCode(28)-Remove Duplicates from Sorted Array
  16. Windows PowerShell 入門(10)-デバッグ編
  17. C#代码处理前台html标签拼接
  18. SpringJDBC :jdbcTemplate在连接是出现 org/springframeworkbc/core/JdbcTemplate : Unsupported major.minor version 52.0 异常解决
  19. 使用struts框架后的404错误
  20. “全栈2019”Java第八章:IntelliJ IDEA设置注释不显示在行首

热门文章

  1. ionic pull to refresh 下拉更新頁面
  2. angular 页面加载时可以调用 函数处理
  3. 开源项目:libbpg
  4. SOS 调试扩展 (SOS.dll) 《第五篇》
  5. 用python3统计代码行数
  6. Where is "Active Directory Information Extractor"?
  7. SVN创建Tags
  8. 使用OrderBy对List<Person>集合排序
  9. 【风马一族_xml】Schema--- xml的约束技术
  10. jLink V8调试exynos 4412 u-boot的几点补充