ARC 学习笔记(二)-Outlet与弱引用

来源:互联网 发布:爱数据网课程 编辑:程序博客网 时间:2024/06/05 08:08

当我们使用storyboard时,可以使用Interface Builder生成Outlet对象,然后你会发现其中的内存管理属性一般都是weak修饰符。其实这是为了防止循环引用。因为一般我们都是拖出来的subview,而Outlet的持有者是superview对象,如果再用strong来修饰subview的话,那么就会出现父子的引用循环。
这里写图片描述

如果不设置为weak类型,那么UIViewController就不会释放这些view的所有权,直到系统调用unload方法,然后你需要在这个方法中将view置为nil。但是当界面中的控件一多的话,内存泄漏会越来越大。

但是并不是所有的Outlet都是用weak修饰符。当使用Interface builder生成的第一层view或者windows被作为Outlet来使用的话,那么就需要设置为strong类型了。比如,storyboard中的各个scene。原因也很简单,没有被任何人强引用的对象,生成之后就会被立即释放。

0 0
原创粉丝点击