關於iOS8上使用UITextView內存泄漏的一個坑:-[UITextView textInputView]: message sent to deallocated instance

問題:    測試

      第一次從一個頁面跳轉到編輯控制器沒有什麼問題,當返回後再次進入編輯控制器點擊UITextView出現內存泄漏錯誤,經過殭屍斷點發現錯誤:-[UITextView textInputView]: message sent to deallocated instance 0x159fc800,測試環境是真機(iPhone5,iOS8.4),我又試着在iOS10的系統上測試,發現並無什麼問題,可能iOS8和10的一些內存處理策略不同。spa

解決方法:3d

      這個bug調試了好久,最後幾經查閱資料,在論壇上發現原來是問題出在UITextView的Category裏,雖然工程裏沒有使用到該Category,但Category裏重寫了dealloc方法,引發了內存的一些釋放問題,註釋了Category裏的dealloc方法就好了。雖然解決了bug,可是我發如今工程裏存在另外一個UITextView的Category,該Category裏也重寫了dealloc方法,可是我並無註釋掉,該方法也不會執行,然而內存問題卻解決了,一臉懵逼,不明白蘋果對於Categary裏重寫系統方法是怎麼處理的。調試

 

附截圖:blog

 跳轉到內存

相關文章
相關標籤/搜索