iOS14相册权限适配 :Limited Photo Access模式、PHAccessLevel(请求查询limited权限在 accessLevel 为readAndWrite 生效)、图片选择器
iOS14适配:【解决iOS14下pop多层控制器至首页时,tabbar不显示问题】方案1:重写pushViewController;方案2: hook hidesBottomBarWhenPush
因此问题涉及的是添加子视图cell.addSubView方法,因此与之对应的方法(UITableViewCell *)[SubView superview] 和cell.subviews方法 都要注意谨慎使用和处理
iOS14 下首次唤起键盘卡住主线程
Main Thread Checker: UI API called on a background thread: -[UIWindow windowScene]
=================================================================
Main Thread Checker: UI API called on a background thread: -[UIWindow windowScene]
PID: 580, TID: 21138, Thread name: (none), Queue name: com.apple.root.user-initiated-qos, QoS: 25
Backtrace:
4 retail 0x000000010576b628 __62+[UIWindow(QMUIUserInterfaceStyleWillChangeNotification) load]_block_invoke_3 + 296
Main Thread Checker: UI API called on a background thread: -[UIWindow traitCollection]
PID: 509, TID: 22376, Thread name: (none), Queue name: com.apple.root.user-initiated-qos, QoS: 25
Backtrace:
4 Housekeeper 0x0000000100f3c000 __62+[UIWindow(QMUIUserInterfaceStyleWillChangeNotification) load]_block_invoke_3 + 92
@implementation UIWindow (QMUIUserInterfaceStyleWillChangeNotification)
#ifdef IOS13_SDK_ALLOWED
+ (void)load {
return ;
}
如果你使用QMUITheme,则及时你更新4.2.1版本也无法根本性解决
这是因为系统自己在子线程访问了这些方法,只是 Main Thread Checker 对其做了兼容,发现 App 自己修改了这些方法的实现,才报错,没修改则不报错。 检测方式可以打条件符号断点,然后把 QMUI 那段代码注释掉,运行起来后会发现依然能命中这个断点,说明系统自身确实是在子线程访问了(UIKit 这种行为特别多,不只是这里)。 所以从原理上看,QMUI 命中这个主线程检测是不可避免的,目前只是做了一些优化,只有真正使用了 QMUITheme 组件时才会出现这个情况,没使用的时候就不会命中,以减少一部分的出错场景。这个优化将会跟随 4.2.1 版本发布。
iOS14 开启 encrypted DNS 提高安全性,防止DNS 劫持