一,循環引用最常見的代碼類型。
- (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,弱引用。因為弱引用持有對象,但不增加引用計數??梢员苊庋h引用的產生。
三,弱引用避免循環引用的常見例子。
有兩個ViewController,這兩個ViewController之間需要互相傳數據。這時候,ViewController的delegate成員變量通常是一個弱引用。目的是為了避免兩個ViewController之間循環引用。
參考資料:《iOS開發時階》 -唐巧
新聞熱點
疑難解答