unsafe_unretained和weak都可以作为属性特质避免循环引用,他们的区别是:unsafe_unretained所修饰属性是不安全的,而且不归此事例拥有,如果系统已经把属性所指的那个对象回收,那么在回收的对象上调用方法会导致程序崩溃,而weak所修饰属性则会指向nil,这样就不会导致程序崩溃。所以委托对象属性使用weak修饰有两个作用,一个是避免循环引用,一个是委托对象回收时,继续使用弱引用避免程序崩溃。
unsafe_unretained和weak弱引用避免保留环(循环引用)区别
最新推荐文章于 2019-11-17 22:25:32 发布