2011-12-27 32 views
3

隨着NSZombieEnabled開啓,它將提供一些警告,防止在運行時發生的EXC_BAD_ACCESS問題。NSZombieEnabled是否應該關閉發佈的應用程序?

我正在做雙重努力,以確保沒有/少量內存泄漏,但我可能會過度釋放,所以打開NSZombieEnabled將有助於防止這種情況,我是對嗎?或者打開NSZombieEnabled,是否所有內存釋放操作都會轉換爲空操作?這將是一個大問題是這樣的。

回答

2

不,你不應該附帶NSZombiesEnable。殭屍通過將釋放對象的isa指針投射到「殭屍」類來工作。除非啓用NSDeallocateZombies,否則不會釋放此對象的存儲。因此,如果你讓殭屍啓用,你可能會泄漏內存。

另外,蘋果公司表示,不把它留在NSDebug.h啓用:

不要在該軟件的未來版本取決於這些符號是否存在等在你的​​代碼 。當然,不要依賴生產代碼中此標頭中的 符號。

如果在AppStore上發佈,我的猜測是你不會通過審查。

1

你應該關閉它,因爲NSZombieEnabled意味着你分配的對象沒有被釋放,因此你的應用程序將會泄漏。

http://www.cocoadev.com/index.pl?NSZombieEnabled

'NSZombieEnabled不應該留在原處永久,因爲默認情況下沒有對象將永遠不會真正解除了分配,使您的應用程序中使用的巨大數量的內存'