過度釋放:[**VIewController scrollViewDidScroll:]: message sent to deallocated instance
修復bug 是開發者經常遇到並樂此不疲的一件事,尤其是看到bug現象就能想到哪了出問題了, 修復之後那種體驗不可言喻,但是 最讓人頭痛的是 ,程式經常崩在EXC_BADACCESS 這種, 今天我就說一下其中一個bug。
先上bug截圖:
是不是特別熟悉,但是這種錯誤,讓我們無章可循,不知道究竟是哪裡出了問題,
緊接著,依照我的直覺【哈哈,裝個X,其實是經驗而已了】, 判定可能為殭屍物件,開啟xcode的殭屍物件除錯
再次出發崩潰,果不其然,此時的控制檯的輸出為:
至少我們已經定位到了某個VC裡面,而且錯誤原因很明明瞭,scrollViewDidScroll:]: message sent to deallocated instance 即 過度釋放,那麼問題就迎刃而解了,只需要在delloc 方法裡面:
-(void)dealloc{
self.TableView.delegate = nil;
[也可能是ScrollView,看自己介面的情況而定]
}
好吧,總算解決了,繼續苦逼的修復其他bug吧。
相關文章
- NSCFType unrecognized selector sent to instance等問題Zed
- Oracle 釋放過度使用的Undo表空間Oracle
- Oracle instance解釋Oracle
- Git Message能引起極度舒適?Git
- Android平臺過度開放 遭遇成長煩惱Android
- 聊聊ViewControllerViewController
- 函式組: SENT函式
- 釋放ip埠
- 【故障-ORACLE】rdbms ipc message timeout解釋Oracle
- Server-Sent Events 教程Server
- 關於INSTANCE RECOVERY過程的理解
- linux埠釋放Linux
- linux 釋放埠Linux
- 更好地使用 ViewControllerViewController
- Oracle資料庫高水位釋放——LOB欄位空間釋放Oracle資料庫
- 如何釋放Mac空間?釋放Mac系統空間小技巧Mac
- oracle 釋放undo空間Oracle
- Message(Message Pool)原始碼分析原始碼
- C++ Vector怎麼樣釋放記憶體,通過swap()函式C++記憶體函式
- viewController的生命週期ViewController
- iOS ViewController Dealloc監聽iOSViewController
- 自定義 container viewcontrollerAIViewController
- Server-sent Events 介面壓測Server
- 百度釋出DuMix AR 3.0 三大創新能力開放賦能開發者
- Linux釋放記憶體及手動釋放Oracle共享記憶體段Linux記憶體Oracle
- 談談如何透過構建資料產品釋放資料價值
- vector 的記憶體釋放記憶體
- XCode釋放記憶體XCode記憶體
- Linux手動釋放CacheLinux
- linux釋放佔用埠Linux
- linux釋放記憶體Linux記憶體
- delete不釋放表空間delete
- mysql釋放檔案高水位MySql
- 不通過push,給viewcontroller自定義UINavigationBar,並加上返回按鈕ViewControllerUINavigation
- 獲取view所在的ViewControllerViewController
- Swift view 中 獲取ViewControllerSwiftViewController
- 判斷ViewController push、pop操作ViewController
- PHP headers already sent 原因分析PHPHeader