最近接手一個 國際化的項目,做下筆記(筆記若有誤,歡迎指出),記錄一下開發(fā)遇到報錯問題:
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'An instance 0x129d0c230 of class HDTabBarController was deallocated while key value observers were still registered with it. Current observation info: <NSKeyValueObservationInfo 0x17003d7a0> (
<NSKeyValueObservance 0x170246360: Observer: 0x129d0c230, Key path: selectedViewController, Options: <New: YES, Old: YES, Prior: NO> Context: 0x0, Property: 0x170246390>
開發(fā)環(huán)境Xcode12.1,運行環(huán)境iOS10.3.3、iOS14.2。
iOS14.2手機運行沒問題
iOS10.3.3手機上運行,切換語言時(重置HDTabBarController)APP崩潰閃退。報錯如下

檢查發(fā)現 HDTabBarController 在dealloc 時沒有移除KVO監(jiān)聽(如圖)。

解決方案:
在重置HDTabBarController時,原來的HDTabBarController需要釋放,對應的KVO也需要移除。所以在dealloc里面添加移除KVO監(jiān)聽就好了, 如下圖
