Сбой UITableViewController при второй загрузке - PullRequest
0 голосов
/ 24 сентября 2011

У меня есть проект, в котором я хочу открыть UITableViewController после UITableViewController через UINavigationController. Дело в том, что он работает в первый раз, когда вызывается этой функцией:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    SDMetadataEntity *entity = [self.optionItems objectAtIndex:indexPath.row];
    SudzcDetailViewController *detailViewController = [[SudzcDetailViewController alloc] init];
    detailViewController.refName = entity.Name;
    [self.navigationController pushViewController:detailViewController animated:YES];
    [detailViewController release];
    [entity release];
}

Но когда я нажимаю кнопку "Назад" на панели навигации и снова нажимаю тот же элемент, происходит сбой! Он не падает, когда я нажимаю другой элемент в первом UITableViewController. Мне бы очень хотелось узнать, что я делаю неправильно!

Ответы [ 2 ]

1 голос
/ 24 сентября 2011

Вы не должны

[entity release]; 

, потому что когда вы делаете

[self.optionItems objectAtIndex:indexPath.row];

, вы просто получаете указатель на него, а не инициализируете / копируете / сохраняете его.

1 голос
/ 24 сентября 2011

Вы не должны выпускать entity.

Вы получили этот объект из массива, но вы не являетесь его владельцем, поэтому, когда вы освобождаете его, вы можете вызывать его преждевременное освобождение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...