强引用

数组会对它里面的每一个元素进行一次强引用,保证不会释放
 
 
initwithrootview 但凡是通过initwithroot,add加载的东西也都是强引用了一次
所以,说把局部变量的导航控制器赋值给窗口的根视图时候,导航控制器(局部变量)依然存在,不会销毁
但是,子定义窗口的时候用局部变量就不信行
 
 
push的也是强引用了一次
 
分清楚view,vc
 
导航控制器有三部分:导航条,存储子控制器view的地盘,存储子控制器的栈
 
 
  1. 导航控制器push 的时候,会做两件事
  2. 第一把子控制器放入栈的数组里面,并且强引用一次(保证子控制器不会被销毁)
  3. 第二把子控制器的view贴在导航控制器存储子控制器view的地盘
 
当有新的视图控制器进来时,会把原来控制器的view移开,但该view不会被销毁,因为该vc被数组强引用了一次,还存在,然后view也被vc强引用了一次,还存在,只是暂时不用(不显示)
 
 
pop的时候呢,vc被从数组里面移除,vc不存在,view也不存在了
posted @ 2018-01-26 00:11  gaogaihui  阅读(270)  评论(0编辑  收藏  举报