OC的内存管理有两种机制:
1、MRC 手动管理
2、ARC 自动管理
oc采用了类似于c、c++的内存机制,但是相对于他们先进一些;
oc中的所有对象都继承与NSObject,当创建一个对象的时候,对象指向一个内存地址,当我们把这个对象赋给另一个对象的时候,这时就产生了一次copy,也就是oc中的retain操作,两个对象同时指向一个内存地址,但是在oc中存在一个refrence count的计数器,当产生copy操作的是,refrence count会自动+1,比如我们刚刚将一个对象赋给另一个对象,这时内存空间中的refrence count的长度就是2,说明有两个对象指向了这个内存空间;
当我们要释放一个对象所占用的内存空间的时候,我们执行release操作的是,内存空间中的refrence count就会自动-1,也就是将对象指向内存空间的这个指针delete了;
1、创建项目时,默认的管理方式为ARC(自动)
怎么更改内存管理方式?
点击项目->built settings->all->搜索ARC->将yes改为no