通常,为了获取当前window,或者当前正在接管视图的window,会使用
[UIApplication sharedApplication].keyWindow
来获取当前的keyWindow,但这样存在问题。
如果在App启动后,有一些弹窗比如广告、升级等,是添加在当前keyWindow上的,那大概率会导致无法显示或者崩溃。
在App启动时,keyWindow只有在viewWillLayoutSubviews执行完毕后,才有值。
但是通过
[[UIApplication sharedApplication].delegate window]
获取的window是App初始化之后的window,只要初始化过,就一定会有值了。
这个window可能和keyWindow是同一个,也可能不同。
参考:https://blog.csdn.net/weixin_43883776/article/details/85017069