IOS提供了一個環境變量設置來幫忙定位錯誤位置的信息描述:NSZombieEnabled ,就是當設置NSZombieEnabled環境變量後,一個對象銷燬時會被轉化爲_NSZombie,設置NSZombieEnabled後,當你向一個已經釋放的對象發送消息,這個對象就不會向之前那樣Crash或者產生一個難以理解的行爲,而是放出一個錯誤消息,然後以一種可預測的可以產生debug斷點的方式消失,
因此我們就可以找到具體或者大概是哪個對象被錯誤的釋放了。
設置NSZombieEnabled環境變量,XCode中:
你可以點擊 Xcode 菜單 Product -> Edit Scheme-> Arguments, 然後將點擊”加號”, 將 NSZombieEnabled 參數加到Environment Variables 窗口中, 後面的數值寫上 ”YES”.
或者在 Xcode 菜單 Product -> EditScheme -> Diagnostics 設置窗口中直接勾上Enable ZombieObjects 即可,Xcode 可用 cmd+shift+< 進到這個窗口。