1

我用ActivityIndi​​catorC類爲它的應用程序委託文件和頁頭的對象,但在這裏我得到的內存泄漏對象的潛在泄漏,分配給活動指示燈窗口

self.ActIndicator=[[ActivityIndicatorC alloc] initwithWindow:window]; 

我釋放ActIndicator此對象在dealloc的部分但直到我得到相同的潛在的泄漏上述代碼。

任何人都可以爲它建議的解決方案。

回答

2

如果ActIndicator被設置爲保留財產。再有就是在h文件泄漏使 @property(nonatominc,保留)到@property(nonatominc,分配)或

ActivityIndicatorC *theActivity= [[ActivityIndicatorC alloc] initwithWindow:window]; 
self.ActIndicator=theActivity; 
[theActivity release]; 
3

對象被保持兩次。當使用self.ActIndicator =時,您調用setter,編譯器通過使用您在界面中放置的@property(retain,...)爲您創建。

self.ActIndicator=[[ActivityIndicatorC alloc] initwithWindow:window]; 
    ^retainCount + 1     ^^^^^ and +1 because of this. 

你可以寫

self.ActIndicator = [[[ActivityIndicatorC alloc] initwithWindow:window] autorelease]; 

ActIndicator = [[ActivityIndicatorC alloc] initwithWindow:window]; 

你應該將名稱更改爲actIndicator或(甚至更好)activityIndi​​cator。只有類名應該以大寫字母開頭。

1

您必須手動釋放使用alloc-init創建的對象。所以你應該寫一個[ActIndicator發佈];或者只是自動釋放它。