didSelectRowAtIndexPath中的EXC_BAD_ACCESS

时间:2011-07-08 15:19:14

标签: objective-c ios uitableview exc-bad-access didselectrowatindexpath

我已通过以下方式覆盖了我的UITableViewController didSelectRowAtIndexPath方法:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    PhotoListViewController *photosViewController = [[PhotoListViewController alloc] initWithStyle:UITableViewStylePlain];

    NSLog(@"Let's see what we got %d", [[fetchedResultsController fetchedObjects] count]);

    Person *person = [fetchedResultsController objectAtIndexPath:indexPath];
    photosViewController.person = person;
    photosViewController.title = [person.name stringByAppendingString:@"'s Photos"];

    [self.navigationController pushViewController:photosViewController animated:YES];

    [photosViewController release];
}

每当我尝试访问fetchedResultsController时,我都会遇到崩溃,我将其设置在此处:

- (id)initWithStyle:(UITableViewStyle)style
{
    self = [super initWithStyle:style];
    if (self) {
        NSPredicate *predicate = [NSPredicate predicateWithFormat:@"person = %@", person];
        fetchedResultsController = [[FlickrFetcher sharedInstance] fetchedResultsControllerForEntity:@"Photo" withPredicate:predicate];
    }
    return self;
}

我只在我的dealloc方法

中发布它

1 个答案:

答案 0 :(得分:5)

在调用didSelectRowAtIndexPath方法之前,似乎您的自动释放池已经耗尽。您是否尝试保留fetchedResultsController,如下所示:

fetchedResultsController = [[[FlickrFetcher sharedInstance] fetchedResultsControllerForEntity:@"Photo" withPredicate:predicate] retain];