菜鸟教程——OC内存管理

一、什么是内存管理

内存管理是指软件运行时对计算机内存资源分配和使用的技术,其最主要的目的是如何高效,快速的分配,并且在适当的时候释放和回收内存资源。

二、为什么需要内存管理

由于移动设备的内存极其有限,所以每个APP所占的内存也是有限制的,当app所占用的内存较多时,系统就会发出内存警告,这时需要回收一些不需要再继续使用的内存空间,比如回收一些不再使用的对象和变量等。

管理范围:任何继承NSObject的对象,对其他的基本数据类型无效。

本质原因是因为对象和其他数据类型在系统中的存储空间不一样,其它局部变量主要存放于栈中,而对象存储于堆中,当代码块结束时这个代码块中涉及的所有局部变量会被回收,指向对象的指针也被回收,此时对象已经没有指针指向,但依然存在于内存中,造成内存泄露。

三、OC内存管理原则

只要还有人在使用某个对象,那么这个对象就不会被回收;

只要你想使用这个对象,那么就应该让这个对象的引用计数器+1;

当你不想使用这个对象时,应该让对象的引用计数器-1;

(1)谁创建,谁release

(a)如果你通过alloc,new,copy来创建了一个对象,那么你就必须调用release或者autorelease方法

(b)不是你创建的就不用你去负责

  (2)  谁retain,谁release

只要你调用了retain,无论这个对象时如何生成的,你都要调用release

    原文作者:iOS谢先森
    原文地址: https://www.jianshu.com/p/02282916cf5d
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞