一,循环引用最常见的代码类型。
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. NSMutableArray *firstArray=[[NSMutableArray alloc]init]; NSMutableArray *secondArray=[[NSMutableArray alloc]init]; [firstArray addObject:secondArray]; [secondArray addObject:firstArray]; }
二,循环引用的解决办法。
1,程序员手动断开一个环,停止循环引用。
2,弱引用。因为弱引用持有对象,但不增加引用计数。可以避免循环引用的产生。
三,弱引用避免循环引用的常见例子。
有两个ViewController,这两个ViewController之间需要互相传数据。这时候,ViewController的delegate成员变量通常是一个弱引用。目的是为了避免两个ViewController之间循环引用。
参考资料:《iOS开发时阶》 -唐巧