关于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的操作,也都最好放在主线程里去操作。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容