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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

retain与release我个人理解是单纯的对拥有者数量数字上的加减 并没有实际的在内存中创建拥有者 不知这么理解对不对

1 个回复

倒序浏览
每个oc对象都有一个与之相关联的整数,也就是引用计数器。也就是对象拥有者的数量,引用分为strong(强引用)、weak(弱引用)
内存管理是对oc对象而言的,当使用new alloc copy创建一个对象时,给该对象分配内存空间,该空间就包含引用计数器,且其值为1
对象 retain 引用计数器 retainCount加1,对象 release 引用计数器 retainCount减1

当retainCount的值为0时,就释放内存,此时指向该对象的指针就成为野指针了。
如果retainCount的值不为0,且指向该对象的指针已全部销毁(也就是说没有指针指向时),那么该对象就成为僵尸对象了
对象存储在内存中。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马