У меня утечка памяти с приведенным ниже кодом. Если я использую [sub release];
после добавления подпрограммы в NSmutableArray (subViewController), Analyzer сообщает «Некорректное уменьшение счетчика ссылок объекта, который на данный момент не принадлежит вызывающей стороне», когда я удаляю [sub release]
, тогда он говорит «Возможная утечка объекта, размещенного на линии xx»
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];
}
Олсон, если я использую автозапуск, предупреждение превращается в «Объект отправлен -авторелиз слишком много раз»
SubCategoryViewController *sub =[[[SubCategoryViewController alloc]
initwithServiceUrl:urlString andHeaderValue:
((PMCategory *)[self.data objectAtIndex:i]).categoryName]autorelease];
Добавлено из комментария: Метод инициализации SubCategoryViewController:
@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;