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