黑马程序员技术交流社区

标题: oc循环应用该怎么办??? [打印本页]

作者: 周易    时间: 2014-8-26 18:17
标题: oc循环应用该怎么办???
在main中创建两个对象  A  和 B
A对象引用b  B对象引用a
分别执行 [A / B realease] 发现引用计数还是1  说明他们直接循环引用了
#import "B.h"
@interface A:NSObject{
B *b;
}
@end
#import "A.h"
@interface B:NSObject{
A  *a;
}
@end
求案例解析
作者: 寇亮    时间: 2014-8-26 19:31
本帖最后由 寇亮 于 2014-8-26 19:41 编辑

两端互相引用时会导致循环retain,对象永远无法释放。
在用@property声明成员变量时,可以一端用retain、一端用assign
  1. @class B;
  2. @interface A:NSObject{
  3.     @property (nonatomic, assign) B *b;
  4. }
  5. @end

  6. @class A;
  7. @interface B:NSObject{
  8.     @property (nonatomic, retain) A *a;
  9. }
  10. @end
复制代码








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