在项目中的使用场景是这样的:
点击按钮弹出AlertView,在AlertView的回调方法中,新建一个view,然后将其加到当前的window上,操作如下:
发现问题,view弹出后很快就消失了。问题是该view是加到window上的,怎么会没移除就消失呢?
后来打印了下window的内存地址,对比了下:
1)window1:定义变量window,是在viewDidLoad中提前获取self.window的值
self.window= [[UIApplicationsharedApplication] keyWindow];
2)window2:在alerview的方法中获取window:[[UIApplicationsharedApplication] keyWindow]
经过日志打印,发现二者的内存地址是不同的,
后来发现,显示alertView的时候,会创建新的window,将alertView显示在window上,所以会出现内存地址不同的window
网友评论