爲何在Zombies調試時代碼表現不一致?

 

在一些操做系統中,開啓Zombies調試功能會對ARC代碼的行爲有一些反作用。包括iOS和OS X應用都會受影響。這在iOS 6或更新以及在OS X 10.8或更新中已經被修復。 html

在iOS 6 / OS X 10.8以前, 使用 the Zombies instrumentNSZombieEnabled ,或者  "Enable Zombie Objects" Xcode diagnostic, 會致使ARC在釋放操做時沒法清理實例變量。你的 -dealloc 方法仍是會運行,可是任何沒有顯式置爲nil的實例變量都是不能夠訪問的。若是有實例變量是某個對象的強引用,那麼該變量將會被這個再也不使用的實例變量始終保持在內存中。ios

 

所以,在使用Zombies調試時,強烈建議在iOS 6 +或OS X 10.8+上運行應用。xcode

注意:在iOS5 模擬器中運行的應用的行爲和他們在iOS 5中的表現是一致的,即使是模擬器是運行在OS X 10.8中。app

相關文章
相關標籤/搜索