簡體   English   中英

重新加載tableView時出現奇怪的錯誤

[英]strange error when reload tableView

我有一個非常普通的表格視圖。

刷新后,它將從Parse中獲取對象列表。 在dispatch_async隊列中分析這些數據,然后刷新表視圖。 大多數時候,它沒有問題,但是有一段時間reloadData()崩潰

在此處輸入圖片說明

是因為我調用tableView時正在重新加載數據而導致崩潰嗎? (當tableview初始化時,reloadData可能會自動調用)如何避免此錯誤? (控制台中沒有錯誤消息)

編輯:我試圖把? ,但不起作用

在此處輸入圖片說明

當您的tableView(或您要將消息發送到的任何對象)為nil時,就會發生這種情況。 因此,在異步調用在主隊列上調度此事件之前的某個時候,tableView被釋放了。

查看此鏈接以獲取一些信息:

http://www.touch-code-magazine.com/how-to-debug-exc_bad_access/

在以下情況下,您通常會得到EXC_BAD_ACCESS錯誤:

您正在嘗試訪問未初始化的對象。

您正在嘗試訪問不再存在的對象。 它要么被釋放,要么為零。 在ARC模式下,請確保您擁有要使用的對象的所有權。 您正在將消息傳遞給該對象無法理解的對象。

錯誤的類型轉換也會發生這種情況。 就像下面我試圖用%@而不是%d訪問int的行。

 int myAwesomeInt = 9;
 NSLog(@"%@", myAwesomeInt);

如何調試:

確定造成崩潰的原因。 它是否在特定視圖控制器didLoad的視圖中或在委托方法中或在特定操作上崩潰了? 這通常將有助於找到引起錯誤的對象。

(在您的情況下,請查看重新加載表時發生的具體情況。逐行執行堆棧跟蹤,並查看重新加載期間代碼的作用)

大多數時候,“ NSZombies”可以幫助識別死物。 您可以通過編輯方案產品->編輯方案->診斷來啟用NSZombies。

如果仍然找不到根本原因,那么請始終從子視圖控制器轉到父視圖控制器,以查看需要保留哪些對象或正確傳遞什么消息。 查看靜態分析器和儀器進行高級調試。

信用: 基本故障排除指南

希望這可以幫助。 祝好運

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM