• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
Yesi-悦思
"(program(computers) == *art) ? so : what" 修身岂为名传世,作事惟思利及人
博客园    首页    新随笔    联系   管理    订阅  订阅

内存管理1 retain & release

内存管理法则

1:谁创建谁释放alloc /new/ copy------>release/autorelease.一一对应,不是你创建的就不用你释放。

2:除了alloc /new/ copy创建的对象其他的都声明了autorelease。

3:谁retain谁release,只要调用了retain,无论何时生成的对象都应该调用release。

 

    alloc函数是创建对象使用,创建完成后计数器加 1 

              只使用一次
  retain 是对一个对象的计数器加 1
             可以调用多次
 release 是对一个对象的计数器减 1  
             减到0 对象就会从内存中释放掉
 
  内存管理总结
 
1: Objetctive-C的内存管理机制与.net/java那种全自动的立即回收机制是不同的,它本质上还是C语言中的手动管理方式,只不过稍微加了一些自动方法。
2:Objective-C的内存管理是基于引用计数的。要做的事情只是关注的引用,而释放内存的工作实际上由运行环境完成。
3:在最简单的情形中,分配的(alloc)对象,或者是保留(retain)在一些地方的对象,都需要发送一个release消息。这也意味着,如果使用了一次alloc,然后又retian了一次,那你需要release两次才能释放该对象的内存
posted @ 2015-05-06 14:03  悦思  阅读(149)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3