OC内存管理基础

                                                    OC 内存管理基础

 

一. retain和release基本使用

使用注意:

1.你想使用(占用)某个对象,就应该让对象的计数器+1(让对象做一次retain操作)

2.你不想再使用(占用)某个对象,就应该让对象的计数器-1(让对象做一次release)

3.谁retain , 谁release

4.谁alloc,谁release

如:

 int  main()

    {

     Person *p = [[Person alloc]init];         //计数器加1 ,值为1

     [p retain];       // 计数器加1,值为2

     [p release];    // 计数器减1 ,值为1

     [p release];    // 计数器减1 ,值为0;

     return 0;

    }

 

二. 空指针,野指针,僵尸对象

 

空指针:没有任何东西的指针(存储的东西是nil, Nall0)

 

给空指针发送消息不会报错

 

野指针:指向僵尸对象(不可用内存)的指针,给野指针发送消息会报错

 

错误:EXC_BAD_ACCECC:访问一块坏的内存(已经被回收,已经不可用的内存)

 

如:int main()

 

    {

 

     Person *p = [[Person alloc]init];      //计数器加1 ,值为1

 

     [p release];          // 计数器减1 ,值为0.

 

     [p release];        // 野指针指向僵尸对象(不可用的内存)

 

     return 0;

 

    }

 

    会报经典错误:EXC_BAD_ACCECC:访问一块坏的内存(已经被回收,已经不可用的内存)

 

僵尸对象:所占用内存已经回收的对象,僵尸对象不能再使用

 

 

 

经典错误:message  sent  to deallocated  instauce  ox100109a10

 

意思是:给已经释放的对象发送了一条错误的消息

 

 

 

转载于:https://www.cnblogs.com/pwhit/p/5457729.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值