我有一个内存泄漏与下面的代码。如果我加分,以NSMutableArray的(subViewController)后使用[sub release];
,分析说:,当我删除[sub release]
“的对象的引用计数未在这一点上调用者所有的Inconrrect递减”,那么它说:“潜在的泄漏在XX行分配的对象”内存管理:添加到NSMutableArray后释放viewcontroller对象
for (int i=0; i<[self.data count]; i++) {
SubCategoryViewController *sub =[[SubCategoryViewController alloc]
initwithServiceUrl:urlString andHeaderValue:
((PMCategory *)[self.data objectAtIndex:i]).categoryName];
[[AppDelegate sharedAppDelegate].viewController.subViewControllers addObject:sub];
[sub release];
}
ALSON如果我使用自动释放警告变成“对象发送-autorelease过很多次”
SubCategoryViewController *sub =[[[SubCategoryViewController alloc]
initwithServiceUrl:urlString andHeaderValue:
((PMCategory *)[self.data objectAtIndex:i]).categoryName]autorelease];
加评论来自: SubCategoryViewController Init方法:
@property (nonatomic, retain) NSMutableArray *data;
@property (nonatomic, copy) NSString *headerText;
@synthesize data = _data;
@synthesize headerText=_headerText;
...
self = [super init];
if (self) {
self.data = [[NSMutableArray alloc] init] ;
self.headerText =headerValue;
self.serviceURL =serviceU;
self.firstLoad = YES;
}
return self;
你的自定义init方法是什么样的(或者至少显示return语句) –
SubCategoryViewController初始化方法:self = [super init];如果(self){self_data = [[NSMutableArray alloc] init]; self.headerText = headerValue; self.serviceURL = serviceU; self.firstLoad = YES; } return self; – aslana
显示数据的@property语句。 (你可以编辑你的问题,我认为)。 – zaph