0

我从模板创建了一个标签栏应用程序,并向其中一个标签添加了一个导航控制器。我已经从导航应用程序模板创建了这个应用程序并且正在运行。我这样做的原因是因为我需要添加一个标签栏,并且认为通过使用标签栏项目模板并将导航控制器添加到它而不是反过来会更容易。

我已经从另一个项目中复制了数据模型,并将相关代码添加到它应该在的位置。

我遇到的问题是将moc应用程序委托传递到导航控制器打开的选项卡。applicationDidFinishLaunching这是我的应用程序委托中我的方法的一个片段:

(void)applicationDidFinishLaunching:(UIApplication *)application {
[self createEditableCopyOfDatabaseIfNeeded];



Top_BananaTableViewController *top_BananaTableViewController = (Top_BananaTableViewController *)[navigationController topViewController];

top_BananaTableViewController.managedObjectContext = self.managedObjectContext;



// Add the tab bar controller's current view as a subview of the window
[window addSubview:tabBarController.view];
[window makeKeyAndVisible];
}

这里一切似乎都很好,但是当涉及到fetchedResultsController我的导航控制器视图时,它会爆炸:

+entityForName: 找不到实体名称“卡片”的 NSManagedObjectModel

当我检查managedObjectContext在该视图上设置的内容时,它是null.

我不知道它为什么或在哪里失去了它的设置。

4

2 回答 2

1
 Top_BananaTableViewController *top_BananaTableViewController =
 (Top_BananaTableViewController *)[navigationController topViewController];

我的猜测是,要么navigationControllernil这里,要么调用该topViewController方法的返回值是nil.

于 2010-04-05T20:29:19.373 回答
0

“+entityForName: 找不到实体名称“卡片”的 NSManagedObjectModel”是因为您没有有效的 MOC 参考。

于 2011-11-21T19:10:44.080 回答