請看如下代碼:其中_dataSource為NSArray的實例對象


運行之后,滑動tableview,會直接crash,崩潰現象如下:

沒有任何崩潰信息;
解決方案:
第1步:程序在cell.textLabel.text = _dataSource[indexPath.row]處crash,但控制臺沒有任何的reason;我們可以通過命令行或則Print的形式查看對應對象是否存在問題;
第2步:我們這次采用命令行模式的形式,先用po打印看一下當前這句話涉及到的對象,分別是什么?如下圖:

第3步:通過控制臺,我們法線打印輸出數據源中的某個元素的時候,出現了問題,reason:The process has been returned to the state before expression evaluation.,那么,我們得思考一下該對象是否涉及到內存提前釋放的情況了;
第4步:現在,我們打開查看內存檢測選項:
如下圖,選擇 Edit Scheme -> run -> Diagnostics, 選中 Objective -c Enable Zombie Objects, 最后Close

再次運行程序,滑動tableview,此時控制臺會打印輸出如下提示:

那么,說明我們的_dataSource對象優內存問題;
第5步:回頭檢查我們的_dataSource,為NSArray對象,創建方式位便利構造器初始化方式,所以,我們需要修改一下:
注意:不要忘記在dealloc中進行釋放,當前為手動管理內存模式下

再次運行,滑動tableview,一切正常,搞定
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。