簡體   English   中英

線程1:程序收到信號:“ EXC_BAD_ACCESS”

[英]Thread 1: Program received signal : “EXC_BAD_ACCESS”

我目前正在為我的成熟度研究編寫iPhone應用程序。 但是有一種我不了解的行為:有時,當我編譯項目時,有:

線程1:程序接收到信號:“ EXC_BAD_ACCESS”。

但是,當我第二次或第三次編譯相同的代碼時,代碼運行良好,我無法理解為什么。 我使用了一些MonteCarloSimulation,但是當它失敗時,它將無法執行前100個仿真之一。 但是,當一切運行良好時,它會執行1000000次仿真而不會出錯。.真的很奇怪嗎?

你有什么主意嗎? 這可能是Xcode或arc的問題嗎? 其他所有東西都完美地工作。 您是否需要任何進一步的信息? 我也可以將我的驗證碼作為電子郵件發送給您。

這通常意味着您正在嘗試訪問已被釋放的對象。

為了調試這些東西,Objective C使用了一個稱為“ NSZombie”的東西,它將保留這些對象,因此您至少可以看到試圖調用的是什么。 有關如何使用它的一些詳細信息,請參見此問題

這通常是由於訪問已損壞的某些內存引起的,很可能是您引用了已刪除的對象。 很多時候,您可能會發現對象所在的內存尚未被覆蓋,因此當您嘗試訪問該內存時,您的數據仍然完好無損,因此沒有問題,因此它有時會工作。

另一種情況是您已經使用錯誤的引用將一些代碼寫入內存,因此您正在寫入不應該的區域。 取決於程序啟動時的內存布局,這在某些時候可能不會產生任何影響,但在其他時候會造成災難性的后果。

暫無
暫無

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

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