我用ActivityIndicatorC類爲它的應用程序委託文件和頁頭的對象,但在這裏我得到的內存泄漏對象的潛在泄漏,分配給活動指示燈窗口
self.ActIndicator=[[ActivityIndicatorC alloc] initwithWindow:window];
我釋放ActIndicator此對象在dealloc的部分但直到我得到相同的潛在的泄漏上述代碼。
任何人都可以爲它建議的解決方案。
我用ActivityIndicatorC類爲它的應用程序委託文件和頁頭的對象,但在這裏我得到的內存泄漏對象的潛在泄漏,分配給活動指示燈窗口
self.ActIndicator=[[ActivityIndicatorC alloc] initwithWindow:window];
我釋放ActIndicator此對象在dealloc的部分但直到我得到相同的潛在的泄漏上述代碼。
任何人都可以爲它建議的解決方案。
如果ActIndicator被設置爲保留財產。再有就是在h文件泄漏使 @property(nonatominc,保留)到@property(nonatominc,分配)或
ActivityIndicatorC *theActivity= [[ActivityIndicatorC alloc] initwithWindow:window];
self.ActIndicator=theActivity;
[theActivity release];
對象被保持兩次。當使用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或(甚至更好)activityIndicator。只有類名應該以大寫字母開頭。
您必須手動釋放使用alloc-init創建的對象。所以你應該寫一個[ActIndicator發佈];或者只是自動釋放它。