我目前正在與一些人合作開發一個ios項目,其中一個人決定在應用程序的一部分中使用ARC。NSZombie有沒有可能沒有用ARC指出EXC_BAD_ACCESS?
Unfotunatly,從後臺回來時,我們目前正在經歷的一些崩潰。
下面是我們按照應用程序崩潰的步驟,我們跟iOS模擬器執行它們:
- 啓動應用程序
- 再上一個視圖控制器A(與ARC編碼)
- GET在視圖控制器B(不與ARC編碼-to說實話,我不 知道這是否是有關的事宜)
- 將應用程序在後臺。
- 模擬內存再次警告(THX模擬器)
- 啓動應用程序,我們將在ViewController中乙
- 反悔的viewController一個
- 指向與主要功能的應用程序崩潰 EXC_BAD_ACCESS
我們也嘗試使用NSZombieEnabled爲YES,但是當我們這樣做時,應用程序不會崩潰,並保持運行完美,所以我們不知道是否有可能是NSZombieEnabled不很好地工作弧?
如果任何人都可以給我一個關於ARC和NSZombieEnabled的快速和清晰的見解,我會認爲我知道它是如何工作的,但顯然我必須錯過一些東西。
不管怎樣,謝謝您的幫助和時間。
謝謝您的回答中,我們發現了這個問題,你在某種程度上是正確的,這是沒有設置在viewDidUnload零的屬性,它實際上是一個比較複雜一點。它是一個包含iCarousel視圖(庫)中使用的元素的數組,這些項目是異步加載圖像的,在viewDidLoad中我們調用了一個函數來重置該數組,因此所有元素都被釋放,並且當圖像加載時它正在崩潰。看起來,ARC並不能避免NSZombie的工作,在這種情況下,這是因爲我們沒有在代碼中明確引用崩潰項目。 – Saliom