我的問題說明了一切。它甚至有可能嗎?這很奇怪,我不確定去哪裏看或做什麼。一切都在模擬器中發佈,當我運行在應用程序使用調試模式。我可以看到我的dealloc方法中的日誌,一切工作正常。但是當我運行我的應用程序在發佈模式。對象不被釋放。ios對象在調試模式下發布但未在發佈模式下發布
其他人有這個問題嗎?
我的問題說明了一切。它甚至有可能嗎?這很奇怪,我不確定去哪裏看或做什麼。一切都在模擬器中發佈,當我運行在應用程序使用調試模式。我可以看到我的dealloc方法中的日誌,一切工作正常。但是當我運行我的應用程序在發佈模式。對象不被釋放。ios對象在調試模式下發布但未在發佈模式下發布
其他人有這個問題嗎?
從我所瞭解的情況來看,ARC會自動發佈具有不同時序的對象,無論您是在調試還是釋放模式下構建。這是由於編譯器中的-O0
的調試優化標誌和-O3
或-Os
版本。
我記得在一次WWDC的13次會談中(我會試着找到會話名稱)聽到一位蘋果工程師談論它,並且從我記得的情況來看,這種行爲在Xcode版本的期貨中將得到改進。使調試模式下的ARC表現更像在發佈模式下的行爲。
我知道這並沒有什麼幫助,但是我對ARC實現並不熟悉,不能提供更多細節。
另請參閱How do you debug an issue with a release mode build in iOS?以幫助在發行模式下調試您的代碼。
你能否意外地將Zombies打開爲釋放模式,但關閉調試?通常所有的診斷都是關閉的,但它會適合您的描述。
但我迄今爲止所見到的唯一情況是相反的:在發佈模式下(有優化),對象比調試模式下更早發佈(沒有優化)。 –