码迷,mamicode.com
首页 > Windows程序 > 详细

我理解的UIWindow

时间:2015-01-27 13:22:54      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:uiwindow 弱引用

因为要用UIwindow实现一个功能,所以最近了解了一下这个类,这篇文章主要记录一下我遇到的问题和我的想法。

UIWindow虽然继承自UIView,但是一个与UIView有显著不同的地方就是,UIWindow 的实例不需要作为任何子 view 加入到任何一个 view hierarchy 中,你一旦像这样

[[UIWindow alloc] init] 生成一个对象,它就自动被加入到[UIApplication sharedApplication].windows 这个数组,此时的UIWindow 对象的hidden 属性 是 NO,此时把它调整为 YES 再加上适当的 frame 设置,它就会出现在 device 的屏幕上了。

另一个让我困惑了一晚上的事情是, [UIApplication sharedApplication].windows 这个数组,对每一个生成的 UIWindow 对象,保持的都是一个弱引用,当你程序其它地方不再对一个UIWindow 对象保持引用后,windows这个数组也就无法再指向那个被释放的 UIwindow 对象了。一开始我还挺困惑,后来仔细想了一下,UIApplication sharedApplication]这个对象会伴随整个应用的生命周期,如果windows这个数组是强引用,那么我们在程序中任何一个地方new出来的UIWIndow对象,都会被这个数组强引用而导致在整个程序运行过程中都无法释放,比如临时用一个window,却一直引用了。所以在写代码的时候,一定不能依赖 [UIApplication sharedApplication].windows 这个数组来保持对UIWindow对象的引用。

我理解的UIWindow

标签:uiwindow 弱引用

原文地址:http://blog.csdn.net/xiaoyulong007/article/details/43193323

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!