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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wdcew 中级黑马   /  2015-8-11 23:50  /  1083 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


为什么以下代码 对象a 与对象b 都无法释放呢?一直不太理解,而且如何有效的解决这个循环的问题呢  
//创建对象  
Dog *d = [Dog new];  
Person *p = [Person new];  
//循环引用  
p.dog = d;  
d.owner = p;
[d release];  
[p release];

4 个回复

倒序浏览
春眠不觉晓123 来自手机 初级黑马 2015-8-12 00:16:24
沙发
这个基础视频教程中有讲解,两种方法解决
回复 使用道具 举报
1.[d release]; [p release]; [d release]; 或者[p release];就是让其中一个多释放一次。
回复 使用道具 举报
2.一种用retain,一种用assign.就可以避免。
回复 使用道具 举报
噢,谢谢楼上,我明白了!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马