最近在运行的一个老项目一直出现iOS11兼容性的问题,iOS10以及之前的版本都没问题,唯独iOS 11出现各种弹窗不展示,或者不消失的问题,翻看了源代码,发现是上一个人的锅。
iOS10之前
[[[UIApplication sharedApplication] windows].lastObject addSubview:myaleView];
都是可以的。Application
的windows
最后一个对象总能找到当前的window
。
iOS 11并不兼容的原因是这样的写法并不能找到当前的window
,用keyWindow
就没为题了
[[UIApplication sharedApplication].keyWindow addSubview:myaleView];
总之command+f 或搜索整个项目[[[UIApplication sharedApplication] windows].lastObject addSubview:
然后把find
改成replace
。全部都替换成[[UIApplication sharedApplication].keyWindow addSubview:
就OK了。