ARC-循环引用-解决办法

一,循环引用最常见的代码类型。

 

复制代码
- (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开发时阶》 -唐巧

你可能感兴趣的:(arc)