У меня есть следующие строки в моем viewDidLoad:Когда выпустить NSMutableArray из цикла в viewDidLoad?
self.sections = [[NSMutableDictionary alloc] init];
BOOL found;
// Loop through the signs and create our keys
for (NSDictionary *sign in self.allSigns)
{
NSString *c = [[sign objectForKey:@"name"] substringToIndex:1];
found = NO;
for (NSString *str in [self.sections allKeys])
{
if ([str isEqualToString:c])
{
found = YES;
}
}
// If string is not found, add it in uppercase to the sections array.
if (!found)
{ ** Potential leak of an object.**
[self.sections setValue:[[NSMutableArray alloc] init] forKey:[c uppercaseString]];
}
[sign release];
}
// Loop again and sort the signs into their respective keys
for (NSDictionary *sign in self.allSigns)
{
NSString *dummy = [[sign objectForKey:@"name"] substringToIndex:1];
[[self.sections objectForKey:[dummy uppercaseString]] addObject:sign];
}
// Sort each section array
for (NSString *key in [self.sections allKeys])
{
[[self.sections objectForKey:key] sortUsingDescriptors:[NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES]]];
}
//self.numberOfEntries = [[allSigns allKeys] sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
[dataLoader release];
[super viewDidLoad];
Затем я использую массив self.sections в различных методах TableView делегата. Он также правильно объявлен в моем заголовке и (конечно) синтезирован.
Но когда я запускаю Build & Анализ, Xcode сообщает мне, что существует потенциальная утечка объекта. Но я не уверен, где я должен выпустить этот NSMutableArray, потому что я не знаю, например, имя объекта.
Должен ли я положить его в свой dealloc или отпустить его после цикла?
С уважением,
Рутгер