У меня есть NSMutableDictionary с ключом, являющимся первым алфавитом имени объекта. Это что-то вроде вкладки «Контакты» на iphone. Дополнительно пользователь может выбрать отдельные объекты в списке.
В коде я нахожу каждый выбранный объект для дальнейшей обработки.
NSMutableArray *objectsToAdd = [[NSMutableArray alloc] init];
NSMutableArray *array = nil;
for (NSString *key in self.nameIndex) {
array = (NSMutableArray *)[searchedNameDictionary valueForKey:key];
for (Objects *eachObject in array) {
if (eachObject.objectIsSelected){
[objectsToAdd addObject:eachObject];
}
}
}
[array release];
-(void)dealloc()
{
[searchedNameDictionary release];
}
Приложение аварийно завершает работу, когда я выпускаю searchNameDictionary с сообщением, что на освобожденный объект ссылаются.
Теперь, если в приведенном выше коде я удаляю [выпуск массива], приложение работает нормально.
Мой вопрос заключается в том, что освобождение 'массива' на самом деле освобождает объекты в искомом NameDictionary, что, как кажется, происходит.
Не приведет ли освобождение массива к утечке памяти?