Я делаю приложение для iPhone, которое использует навигационный элемент управления для просмотра некоторых данных. Эти данные хранятся в базе данных sqlite, и у меня есть класс, который получает их и возвращает их в NSMutableArray из NSStrings.
Проблема в том, что на первом экране навигации все работает безупречно, но на втором экране (другой вид, который выдвигается) тот же код завершается ошибкой, потому что NSMutableArray поврежден. В отладчике я вижу, что он возвращается правильно, но когда пришло время его использовать, указатели повредились, и приложение перестало работать.
Я установил точки останова во всех своих функциях и нигде не вижу, где они могут быть повреждены. И поскольку первое представление, которое использует тот же точный код, даже обращаясь к одним и тем же таблицам eact, работает правильно, я не знаю, где искать.
Если кто-то захочет взглянуть на код, я загрузил его на мой сайт: http://sachafuentes.com/iBacus.zip
Заранее спасибо.
UPDATE:
Проблема заключается в функции получения данных, которая выглядит следующим образом (это упрощенная версия с некоторым псевдокодом).
-(NSMutableArray *) getPaises {
NSMutableArray * paises;
paises = [[NSMutableArray alloc] init];
while( get new row ) {
NSString *aPais = get the value;
[paises addObject:aPais];
[aPais release];
}
return paises;
}
Если я закомментирую [релиз aPais], все будет работать, но для меня это выглядит как утечка памяти, поскольку строка NSString не будет выпущена.