A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

每个OC对象都有自己的引用计数器,专门记录该OC对象(任何继承了NSObject的对象,对其他基本数据类型int、struct、enum等无效)被引用的次数,是个整数,占用四个字节。
当使用alloc、new创建新对象时,新对象引用计数器默认为1.当引用计数器为0时,对象占用的内存就会被系统回收,即对象被销毁。
retain消息:计数器+1,返回对象本身。
release消息:计数器-1。没有返回值。调用release方法时,不会释放对象,仅仅将计数器-1。
retainCount:获取当前计数器值。
对象被销毁时,系统会向对象发送一个deallloc消息。重写dealloc方法时,必须调用[super dealloc],并且放在最后调用。

调用release方法时,最易出现野指针错误。野指针:指向僵尸对象(不可用的内存即已经被释放的内存空间)的指针。
EXC_BAD_ACCESS error:访问一块已经被回收、不可用的内存。
OC中不存在空指针错误,给空指针发送消息不报错。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马