我對iOS應用程序有一個有趣的內存管理問題。發佈UIViewController作爲屬性
我有使用時釋放
[self.propertyName release];
將導致被釋放兩次財產,造成不好的存儲器訪問異常一個iPad 1/4的iOS設備上(在屬性的的dealloc)的性質。當這個碼被改變成
[_propertyName release];
(訪問本地變量代替屬性),這將導致在iPad 3 /的iOS 5.
當然的泄漏,我可以通過檢查操作系統版本來阻止這種情況的發生,但我想了解我做錯了什麼。
更多的細節:
該物業的UIViewController
一個子類,因爲是誰擁有屬性的對象。我將該屬性的UIView
作爲子視圖添加。我聽說這不是好習慣,但我們正在其他地方做,而沒有記憶問題。
試驗情況是:
ipad公司1,的iOS 4.2 - 需要使用的ivar
[_propertyName release]
iPad 2的,安裝iOS 5.0釋放 - 需要使用屬性
[self.propertyName release]
釋放
iPad 3,iOS 5.1 - 需要使用屬性發布
[self.propertyName release]
我們需要編碼繼續。顯示這個var的聲明,以及你釋放的地方。 – CodaFi 2012-07-11 05:08:07