【发布时间】:2012-08-04 00:50:57
【问题描述】:
我一直在阅读有关此项目的大多数问题,但不知何故我无法弄清楚这一点。
我很容易将 ManagedObjectContext 从 AppDelegate 移交给我之前尝试过的应用程序中的第一个视图,其中初始 viewController 也处理数据。
现在在我正在构建的新应用程序中,我需要一个初始屏幕,用户需要在其中进行选择(通过几个可能的按钮)。根据我的故障排除,在此屏幕上我的 MOC 仍然完好无损(NSLog 消息为我提供了 MOC 的有效地址)。
一旦做出选择,应用程序就会进入一个带有 TableView 的 UIViewController。在这个视图中,我应该能够管理我的数据,但我的 MOC 返回 nil。
应用通过 UINavigationController 进入下一个视图。
我在我的 AppDelegate 中加入了以下代码:
UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController;
InitialViewController *controller = (InitialViewController *)navigationController.topViewController;
controller.managedObjectContext = self.managedObjectContext;
return YES;
InitialViewController 是第一个 ViewController,一切都还好。
下一个视图控制器称为 MasterViewController 并且是 NSFetchedControllerDelegate。在这里,我似乎无法访问 NOC。我已经尝试了之前关于同一主题的问题中建议的几种方法和解决方案,但似乎都没有奏效。
如何通过正确的编码让 NOC 在 MasterViewController 中工作?
哦,是的,其中一个有效的解决方案是在 MasterViewController 中的 ViewDidLoad 之后,我插入以下代码:
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
self.managedObjectContext = appDelegate.managedObjectContext;
我的 MOC 现已上市,但这是正确的做法吗?
【问题讨论】:
标签: objective-c ios5 core-data nsmanagedobjectcontext