设为首页 加入收藏

TOP

Objective-C内存管理之引用计数(二)
2015-01-22 20:57:23 来源: 作者: 【 】 浏览:40
Tags:Objective-C 内存 管理 引用 计数
t]);
?
?
?
?
  从上面的输出结果可以得出以下几点结论:
?
和本文一开始分析得出的结果一样,通过指针赋值并不能改变对象的引用计数。
不论是通过指针赋值还是通过retain获得对象,它们都指向同一个内存地址,即:指向同一个对象
在对象的引用计数归零之前,所有指向它的指针都是可用的。通过某个指针发送release消息仅仅是让引用计数减一,该指针本身不会被销毁。
  因为这里需要输出引用计数,就没有采用ARC,所以会有一个小问题,那就是当退出局部环境的时候,即使局部指针所指向的对象已被销毁,局部指针变量的值仍然没有改变,因此需要手动赋值为nil。如果采用ARC的话,会自动回收内存并将指针赋值为nil。
?
总结
  不管是直接通过指针赋值还是通过retain或者copy来保留对象,都会增加指向对象的指针数量,这些指针都指向同一块内存地址,因为对象所分配的内存地址是不变的。
?
  指向对象的指针的多少跟引用计数没有任何关系,但是通过retain、copy或release可以改变对象的引用计数。
?
  仅当引用计数为0时才会释放对象占用的内存空间。  
?
  哎,真是“落花有意流水无情”啊,哪怕再多的指针“爱上对象”,人家这辈子却也只认引用计数。
首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Objective C运行时(runtime)技.. 下一篇Objective-C内存管理相关的面试题

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: