标签:property 属性 总结 ati ima div .com import cycle
本条要点:(作者总结)
对象图里经常会出现一种情况,就是几个对象都以某种方式互相引用,从而形成“环”(cycle)。由于 Objective-C 内存管理模型使用引用计数架构,所以这种情况通常会泄漏内存,因为最后没有别的东西会引用环中的对象。这样的话,环里的对象就无法为外界所访问了,但对象之间尚有引用,这些引用使得它们都能继续存活下去,而不会为系统所回收。
最简单的保留环由两个对象构成,它们互相引用对方,图举例说明了这种情况。
两个对象通过彼此之间的强
这种保留环的产生原因不难理解,且很容易就能通过查看代码而侦测出来:
1 #import <Foundation/Foundation.h> 2 3 @class EOCClassA; 4 5 @class EOCClassB; 6 7 8 9 @interface EOCClassA : NSObject 10 11 @property (nonatomic, strong) EOCClassB *other; 12 13 @end 14 15 16 17 @interface EOCClassB : NSObject 18 19 @property (nonatomic, Strong) EOCClassA *other; 20 21 @end
看代码很容易就能发现其中可能出现的保留环: 如果把 EOCClassA 实例的 other 属性设置成某个 EOCClassB 实例,而把这个 EOCClassB 实例的 other 属性又设置成这个 EOCClassA 实例,那么就会出现图中的保留环。
标签:property 属性 总结 ati ima div .com import cycle
原文地址:http://www.cnblogs.com/chmhml/p/7343804.html