从另一个ViewController访问“实体”(核心数据)

时间:2012-04-23 14:26:16

标签: core-data nsmanagedobject

另一个人已经待了好几个小时了。我的主要问题是让我的应用程序在我的数据库中“看到”我的实体...

我在appDelegate中创建了代码以设置Core Data。我启动的第一个视图可以毫无问题地访问此数据(读/写)。如果我然后尝试从另一个viewController访问数据库,就好像它不存在一样。

我在viewController头文件中设置了所有正确的@属性:

@property (strong, nonatomic) NSFetchedResultsController *fetchedResultsController;
@property (strong, nonatomic) NSManagedObjectContext *managedObjectContext;

我还得到每个viewController:

    NSFetchedResultsControllerDelegate
  • 我已在要访问该实体的.m文件中导入相关的头文件。

这是我得到的错误:

'+entityForName: could not locate an NSManagedObjectModel for entity name MyEntityName'

令人困惑的是,如果我从appDelegate更改启动视图,那么在我选择的任何视图控制器中看到实体都没有问题。看起来它正在'注入'到第一个,但那就是它。

我猜我需要设置/ alloc init一个NSManagedObject并将它引用回我的实体,但我不知道如何做到这一点。

任何线索?

由于

1 个答案:

答案 0 :(得分:1)

所以我想你需要做的就是像这样传递managedObjectContext

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender;
{
    if ([[segue identifier] isEqualToString:@"theIdentifier"]) {
        UINavigationController *navigationController = (id)[segue destinationViewController];

        MySecondViewController *topViewController = [navigationController topViewController];
        topViewController.managedObjectContext = self.managedObjectContext;
    }
}