在ARC(MacOSx)下
> vIEw1 = strong
> MainVIEw = weak(在WindowControllerA中)
> MainVIEw = strong(在VIEwControllerB中)
> vIEw2 = strong
> vIEw3 = weak(在VIEwcontrollerB中)
> vIEw3 = strong(在VIEwControllerC中)
如果这是正确的,可以有人确认请..
在上图中,我们在屏幕上有一个windowControllerA.在windowControllerA的视图中,有2个NSVIEw. vIEw1属于windowController,但mainVIEw属于视图中的vIEwController,VIEwControllerB.
VIEwControllerB还包含其mainVIEw中的2个视图. VIEw2由vIEwControllerB拥有,而vIEw3属于另一个实例化的VIEwController VIEwControllerC.
VIEwController C有一个它拥有的视图.
解决方法 用于子视图的大多数插座不需要是强引用,因为毕竟,它们是作为视图层次结构的一部分加载的子视图.只要顶级视图存在,并且只要不从父母中删除子视图,视图层次结构中的子视图将在其顶级视图的生命周期中由父母保留.在ARC之前的日子里,有些人很乐意依靠视图层次结构来保留他们的意见,并设置自己的出口属性.其他人不喜欢这样的观点,即视图层次结构中的打嗝会让他们留下一小撮悬挂指针,因此设置其属性保留. ARC给了我们零弱的参考,所以如果他们指向的对象被释放,那么你的销售点将被设置为零,并且对于出口使用弱引用看起来更安全.另一方面,如果要保留对视图的引用,即使包含的视图层次结构被取消分配,您应该将该引用设置为强.
由于您的视图控制器负责其管理的视图层次结构(即“拥有”),因此应该对顶级视图有很强的引用.您不需要担心太多,因为任何UIVIEwController派生的视图控制器的视图属性设置为保留(即强).
总结以上是内存溢出为你收集整理的目标c – 我什么时候应该使用强对弱的IBOutlets(进一步澄清)全部内容,希望文章能够帮你解决目标c – 我什么时候应该使用强对弱的IBOutlets(进一步澄清)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)