将核心数据结果传递给 UILabel

Posted

技术标签:

【中文标题】将核心数据结果传递给 UILabel【英文标题】:Pass Core Data results to UILabel 【发布时间】:2011-04-22 14:43:46 【问题描述】:

我正在从表格中选择一行。我想将该选择的结果传递给新视图上的 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];
 

【问题讨论】:

Vladimir,谢谢,我正在尝试修复 ,就像您修复它一样! 【参考方案1】:

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

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

reviewViewController.event =[[self.fetchedResultsController fetchedObjects] objectAtIndex:index.row];

【讨论】:

我添加了一个排序描述符,我想我已经接近了,我可能会带着另一个问题回来,但这很好。 我收到一条评论说我需要一个排序描述符。这是为什么?我想为从表视图中选择的对象提取所有托管对象内容?此外,您在上面提取的对象是什么? fetchedresultscontroller 的指针? TechZen,我在这里重新提交了新代码:***.com/questions/5759742/…

以上是关于将核心数据结果传递给 UILabel的主要内容,如果未能解决你的问题,请参考以下文章

迭代传递给视图的核心数据

核心数据 NSManagedObject 更改

将 fetch api 结果传递给函数并使用函数中处理过的数据

将函数结果传递给 graphql 突变

将 SELECT 语句结果传递给 StoredProc 以进行临时表连接

我如何将两个数据框列值作为键传递给2键到一个值字典,然后将结果传递到另一列?