近期在維護(hù)公司的項(xiàng)目期間掸茅,在bugly上發(fā)現(xiàn)一則crash問題 如下圖
其中項(xiàng)目集成了ToastSwift這個庫,而這個崩潰的提示信息Modifications to the layout engine must not be performed from a background thread after it has been access...這句話的意思大概是在子線程中修改了UI柠逞。
根據(jù)這個提示我找到自己代碼
這里開始我沒看出來是怎么在子線程修改了UI的昧狮,直到我打開了權(quán)限訪問的這個方法 也就是requestRecordPermission后,這個方法最后一句話吸引了我的注意:Note that the block may be called in a different thread context.也就是說這個方法可能會開子線程板壮,這也是我猜測的這個crash偶現(xiàn)的原因逗鸣,而代碼中唯一跟UI有關(guān)的就一句代碼:self.view.maketoast(""),只要將這句代碼放到
即可绰精。當(dāng)然如果你有別的關(guān)于UI的操作撒璧,也都最好放在主線程里去操作。