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

新しいフェッチされた結果コントローラーは必要ありません。選択したテーブルビュー行に関連付けられている管理対象オブジェクトを次のコントローラーに渡すだけです。フェッチを実行しておらず、いずれの場合もフェッチ要求にobjectAtIndexPathメソッドがないため、エラーが発生します。

テーブルビューのフェッチされた結果コントローラがある場合は、次のように選択されたオブジェクトが見つかります。

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