这是传递ManagedObjectContext的可接受方式吗?

问题描述:

所有我已阅读告诉我,从应用程序的委托去做这样的指南和教程:这是传递ManagedObjectContext的可接受方式吗?

UINavigationController *navController = (UINavigationController *)self.window.rootViewController; 
PictureViewController *picList = (PictureViewController *)[[navController viewControllers] lastObject]; 
picList.managedObjectContext = self.managedObjectContext; 

然而,我的视图控制器是在容器视图控制器和导航视图控制器的一个疯狂的层次结构。这是从目标视图控制器执行它的一种可接受的方式,而没有任何不好的后果?

AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; 
self.managedObjectContext = appDelegate.managedObjectContext; 

总之,是的。这两种方法都很好。我已经看到人们直接从代理访问它的例子,而不是在视图控制器中将它保存为ivar。大多数情况下,我的偏好是像上面那样做。

只要你尊重concurrency问题,你会没事的。

+0

很好,只是我在找的答案,谢谢。我会尽可能接受。 – 2012-07-29 17:27:04