浅谈delegate为什么用weak修饰

来源:互联网 发布:java程序员技能要求 编辑:程序博客网 时间:2024/05/16 23:58

在OC中,delegate用weak修饰是为了防止循环引用

如上图所示,根视图强引用着控制器,控制器强引用着view,view强引用delegate,如果delegate用strong修饰,那么delegate就是强引用控制器,会造成三者的强引用,当根视图释放控制器时,由于delegate强引用着控制器,控制器并不会被释放。如果delegate用weak修饰,控制器就会释放。