我从模板创建了一个标签栏应用程序,并将导航控制器添加到其中一个标签中。我已经从导航应用程序模板创建了这个应用程序并且正在运行。我这样做的原因是因为我需要添加一个标签栏,并认为通过使用标签栏项目模板并将导航控制器添加到它而不是相反的方式开始会更容易。
我已将数据模型从其他项目复制过来,并将相关代码添加到应该的位置。
我遇到的问题是将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
。
我不知道为什么或在哪里放松它的设置。
答案 0 :(得分:1)
Top_BananaTableViewController *top_BananaTableViewController =
(Top_BananaTableViewController *)[navigationController topViewController];
我的猜测是这里navigationController
为nil
,或者调用topViewController
方法的返回值为nil
。
答案 1 :(得分:0)
“+ entityForName:无法找到实体名称'cards'的NSManagedObjectModel”是因为您没有有效的MOC参考。