你好,捯果自源
可以得出以下几点结论:
和本文一开始分析得出的结果一样,通过指针赋值并不能改变对象的引用计数。
不论是通过指针赋值还是通过retain获得对象,它们都指向同一个内存地址,即:指向同一个对象
在对象的引用计数归零之前,所有指向它的指针都是可用的。通过某个指针发送release消息仅仅是让引用计数减一,该指针本身不会被销毁。
因为这里需要输出引用计数,就没有采用ARC,所以会有一个小问题,那就是当退出局部环境的时候,即使局部指针所指向的对象已被销毁,局部指针变量的值仍然没有改变,因此需要手动赋值为nil。如果采用ARC的话,会自动回收内存并将指针赋值为nil。