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发布];或者只是自动释放它。