关于Swift中音频访问权限问题出现的Crash

近期在维护公司的项目期间,在bugly上发现一则crash问题 如下图

crash图

其中项目集成了ToastSwift这个库,而这个崩溃的提示信息Modifications to the layout engine must not be performed from a background thread after it has been access...这句话的意思大概是在子线程中修改了UI。

根据这个提示我找到自己代码


代码

这里开始我没看出来是怎么在子线程修改了UI的,直到我打开了权限访问的这个方法 也就是requestRecordPermission后,这个方法最后一句话吸引了我的注意:Note that the block may be called in a different thread context.也就是说这个方法可能会开子线程,这也是我猜测的这个crash偶现的原因,而代码中唯一跟UI有关的就一句代码:self.view.maketoast(""),只要将这句代码放到


修改后

即可。当然如果你有别的关于UI的操作,也都最好放在主线程里去操作。

你可能感兴趣的:(关于Swift中音频访问权限问题出现的Crash)