当前位置 : 主页 > 编程语言 > 其它开发 >

Objective

来源:互联网 收集:自由互联 发布时间:2022-05-20
目录 Object-C 基础教程第九章,内存管理 前言: 对象生命周期 引用计数 RetainCount1项目例子 对象所有权 访问方法中的保留和释放 自动释放 所有对象放入池中 自动释放池的销毁时间 自动

目录
  • Object-C 基础教程第九章,内存管理
    • 前言:
    • 对象生命周期
      • 引用计数
      • RetainCount1项目例子
      • 对象所有权
      • 访问方法中的保留和释放
      • 自动释放
      • 所有对象放入池中
      • 自动释放池的销毁时间
      • 自动释放池的工作流程
    • Cocoa的内存管理规则
      • 临时对象
      • 拥有对象
      • 垃圾回收
      • 自动引用计数
        • iOS无法使用垃圾回收机制
        • ARC介绍
        • ARC条件
      • 弱引用(Weak)、强引用
      • 拥有者权限
    • 异常
      • 与异常有关的关键字
      • 捕捉不同类型的异常
      • 抛出异常
      • 异常也需要内存管理
      • 异常和自动释放池
    • 小结
    • Pwn菜鸡学习小分队

Object-C 基础教程第九章,内存管理 前言:

最近事情比较多,很久没有来更新文章了。

刚好最近又空闲出来点时间,赶紧继续学习OC并且做笔记,这次要学习的是OC的内存管理。

对象生命周期

正如现实世界中的鸟类和蜜蜂一样,程序中你的对象也有生命周期。

对象的生命周期包括诞生(通过alloc或者new方法实现)、生存(接收消息并执行操作)、交友(通过复合以及方法传递参数)

以及最终死去(被释放掉)。

当生命周期结束时,它们的原材料(内存)将被回收以供新的对象使用。

引用计数

现在,对象何时诞生我们已经很清楚了,而且也讨论了如何使用对象,但是怎么知道对象生命周期结束了呢?Cocoa采用了一种叫做引用计数(reference counting)的技术,有也叫做保留计数(retain counting)

每个对象都有一个关联的整数,当某段代码需求访问一个对象时候,计数器就+1,

反之当这段代码结束对象访问时,计数器-1,

当计数器为0的时候系统就回收该对象(

网友评论