从另一个ViewController(核心数据)访问“实体”
另一个人曾经呆了好几个小时。我有一个主要问题让我的应用程序'看到'我的数据库中的实体...从另一个ViewController(核心数据)访问“实体”
我已经在我的appDelegate中创建代码来设置核心数据。我启动的第一个视图可以访问这些数据(读/写),没有任何问题。如果我然后尝试从另一个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改变启动的观点是没有问题,看到在任何视图控制器我选择的实体。它似乎是“注入”到第一个,但那就是多数民众赞成在它。
我猜我需要设置/分配init NSManagedObject并将其引回到我的实体,但我不知道如何做到这一点。
任何线索?
感谢
所以我想你需要做的是通过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;
}
}
啊我没有意识到你通过segue像其他数据通过它...哎呀! – 2012-04-23 15:36:47
这个修复了吗? – 2012-04-23 15:46:47
nope :(它现在说:UINavigationController setManagedObjectContext:]:无法识别的选择器发送到实例 – 2012-04-23 15:51:37
你是如何传递managedObjectContext到viewControllers什么?我看到你的财产,但你真的分配它? – 2012-04-23 14:59:07
嗨保罗......我不认为我现在把它们归还给任何东西。我该怎么做呢? – 2012-04-23 15:06:26
也......是传递managedObjectContext的'正确的方式',或者我应该为每个viewController创建新的? – 2012-04-23 15:07:25