我刚刚开始开发 iPad 应用程序,我在一个问题上苦苦挣扎了太久,所以我决定寻求帮助。
我有一个使用情节提要的 iPad 应用程序,并作为使用 CoreData 的选项卡式应用程序启动。所以问题是,我的 NSManagedObjectContext 以一个值开头,但是当我移动到另一个选项卡时,managedObjectContext 变为空。
不知道该怎么办。一些帮助将不胜感激。
谢谢
埃尔库乔
我刚刚开始开发 iPad 应用程序,我在一个问题上苦苦挣扎了太久,所以我决定寻求帮助。
我有一个使用情节提要的 iPad 应用程序,并作为使用 CoreData 的选项卡式应用程序启动。所以问题是,我的 NSManagedObjectContext 以一个值开头,但是当我移动到另一个选项卡时,managedObjectContext 变为空。
不知道该怎么办。一些帮助将不胜感激。
谢谢
埃尔库乔
我有点困惑……
self.window.rootViewController
应该返回你的实例UITabBarController
,它不应该响应setManagedObjectContext:
,因此应该崩溃。
考虑到这一点,您需要做什么
将 managedObjectContext 传递给他们
for (id viewController in self.window.rootViewController.viewControllers) {
[viewController setManagedObjectContext:self.managedObjectContext];
}
我快速浏览了一下。
UITabBarController
,在这种情况下你也不需要。您要做的只是获取managedObjectContext
tabBarController 中的每个 viewController,tabBarController 本身确实需要知道它。我将您更改application:didFinishLaunchingWithOptions:
为以下内容,并且按照应有的方式工作
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
UITabBarController *tabBarController = (id)self.window.rootViewController;
for (id viewController in tabBarController.viewControllers) {
[viewController setManagedObjectContext:self.managedObjectContext];
}
}