在iOS 10~ 11系統上,莫名其妙發現一個crash, iOS 12系統沒事(iOS 12系統作了優化麼?)。 定位發現是[self layoutIfNeeded]
崩潰到這句代碼上。xcode
因此對UIView 的setNeedsLayout,layoutIfNeeded,layoutSubviews,setNeedsUpdateConstraints方法執行要在主線程,不在主線程的要dispatch到主線程執行bash
dispatch_async(dispatch_get_main_queue(), ^{
[self layoutIfNeeded];
});
複製代碼
1.運行程序,界面卡死,而後點擊xcode上 async
2.在控制檯輸入:bt,查看堆棧信息 3.也能夠直接在xcode上查看堆棧信息 4.根據打印出的堆棧信息,定位到問題點 5.修復。 將[self layoutIfNeeded]; 放到主線程更新解決。xcode裏模糊搜索方法 正則匹配搜索方法 eg:搜索gearbest 優化
結果:加正則匹配搜索: spa