iOS APP 开发 OC 第十九天,司马光砸缸流出来的不是水,是记忆体。OC记忆体泄漏。

tags: OC 30 day

记忆体泄漏

指的是一个对象的记忆体没有被即时回收,在该回收的时候没有被回收,一直驻留在内存当中,直到程序结束时才被回收。

单个对象的记忆体泄漏情况

  1. 有对象的创建,而没有对应的release。
  2. retain 的次数与release的次数不匹配。
  3. 在不适当的时候,为指针赋值为nil。
  4. 在方法中未传入的对象进行不适当的retain。

如何保证单个对象可以被回收?

  1. 有对象的创建,就必须要匹配一个release
  2. retain次数和release次数一定要匹配。
  3. 只有在指针称为也指针的时候才赋值为nil。
  4. 在方法中不要随意的为传入的对象retain。

多个对象的记忆体管理

当属性是一个OC对象的时候setter方法的写法。
将传进来的对象赋值给当前对象的属性,代表传入的对象多了一个人使用,所以我们应该先为这个传入的对象发送一条retain消息,再赋值。当当前对象销毁时,代表属性指向的对象少一个人使用。就应该在dealloc中release。


<<:  受信任计算机系统评估标准(TCSEC)

>>:  iOS APP 开发 OC 第十九天,@property

Day07:文件

有哪些文件:orientation. 技术、API、测试等 自动化产生,自动化建置流程的一部分 新...

[Day 15] ML 实验管理 — 翻开覆盖的陷阱卡~ 记帐小本本!

All life is an experiment. The more experiments y...

Day 20 - [语料库模型] 08-绘制语料库模型Heatmap图

莫烦 Python 的原版程序码: https://github.com/MorvanZhou/NL...

Day32 ATT&CK for ICS - Inhibit Response Function(4)

T0838 Modify Alarm Settings 攻击者修改设备的警告功能设定(如直接停止警告...

任务排程

本文目标 学习基本的排程演算法 阅读原始码以理解排程器的实际运作 常见的排程演算法 FCFS (Fi...