1

我正在从表中选择一行。我想将该选择的结果传递给新视图上的 UILabel。我是否需要以下 NSFetchRequestController 子例程?我想要一种更简单的方法来将事件核心数据选择传递给非 UITableView 控制器(只是一个常规的 UIViewController)。

下面 objectIndexPath 处的“请求”导致错误。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    ReviewController *reviewViewController = [[ReviewController alloc] init];
    NSFetchRequest *request = [[NSFetchRequest alloc] init];
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"Event" inManagedObjectContext:managedObjectContext];
    [request setEntity:entity];

    Event *selectedEvent = (Event *)[request objectAtIndexPath:indexPath];
    reviewViewController.event = selectedEvent; 
    [self.navigationController pushViewController:reviewViewController animated:YES];
    [reviewViewController release];
} 
4

1 回答 1

3

您不需要新的获取结果控制器。您只需将与所选 tableview 行关联的托管对象传递给下一个控制器。您收到错误是因为您没有执行 fetch 并且在任何情况下 fetch 请求都没有objectAtIndexPath方法。

如果您有一个用于 tableview 的 fetched results controller,您将找到所选对象:

reviewViewController.event =[[self.fetchedResultsController fetchedObjects] objectAtIndex:index.row];
于 2011-04-22T16:10:34.560 回答