黑马程序员技术交流社区

标题: 关于循环retain的的问题 [打印本页]

作者: wdcew    时间: 2015-8-11 23:50
标题: 关于循环retain的的问题

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

作者: 春眠不觉晓123    时间: 2015-8-12 00:16
这个基础视频教程中有讲解,两种方法解决
作者: 庐山烟雨浙江潮    时间: 2015-8-12 09:28
1.[d release]; [p release]; [d release]; 或者[p release];就是让其中一个多释放一次。
作者: 庐山烟雨浙江潮    时间: 2015-8-12 09:29
2.一种用retain,一种用assign.就可以避免。
作者: wdcew    时间: 2015-8-12 09:30
噢,谢谢楼上,我明白了!!!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2