我与本教程中的以下核心数据:http://maybelost.com/2011/12/tutorial-storyboard-app-with-core-data/和我收到此错误试图通过类之间的managedObjectContext:错误类别之间传递managedObjectContext为
2012-04-23 09:53:13.969 PictureList[10287:fb03] -[UINavigationController setManagedObjectContext:]: unrecognized selector sent to instance 0x6d20a80
2012-04-23 09:53:13.992 PictureList[10287:fb03] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UINavigationController setManagedObjectContext:]: unrecognized selector sent to instance 0x6d20a80'
*** First throw call stack:
(0x16ab022 0x183ccd6 0x16accbd 0x1611ed0 0x1611cb2 0x1c05 0x14386 0x15274 0x24183 0x24c38 0x18634 0x1595ef5 0x167f195 0x15e3ff2 0x15e28da 0x15e1d84 0x15e1c9b 0x14c65 0x16626 0x1afd 0x1a65)
terminate called throwing an exception(lldb)
错误似乎有点含糊,但我怀疑UINavigationController是造成这个问题的原因。当我运行它时,该应用程序立即崩溃。
这里是我的Appdelegate.m这里我想上下文传递给我的最初的控制器代码:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Pass the managed object context to the root view controller (the login view)
LoginViewController *rootView = (LoginViewController *)self.window.rootViewController;
rootView.managedObjectContext = self.managedObjectContext;
....
}
return YES;
}
然后我试图通过从我LoginViewController传递给下一班一个赛格。 LoginViewController.m:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
UINavigationController *navController = (UINavigationController *)[segue destinationViewController];
PictureListMainTable *piclist = (PictureListMainTable *)[[navController viewControllers] lastObject];
piclist.managedObjectContext = managedObjectContext;
}
我试图花药的事情是通过上下文一起到UINavigationController的:
// This code was customized to handle the navigation controller
// Pass the managed object context to the root view controller (the login view)
UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController;
LoginViewController *rootView = (LoginViewController *)navigationController.topViewController;
rootView.managedObjectContext = self.managedObjectContext;
使用这种方法,我至少能获取应用程序加载到登录屏幕,但是当我尝试继续应用程序会崩溃。我该如何解决这个问题?
编辑:好的,发现问题。在本教程中,我并不认为导航是在登录登录控制器之前嵌入的,但导航控制器实际上位于LoginViewController和PictureListMainTable之间。
你可以在下面写下你的解答吗?然后你可以接受它,问题就会完成(某事,某事,某事,黑暗面......):-) – 2012-05-29 12:59:43