我有一个关于如何传递NSManagedObjectContext的问题.在我的应用程序中,似乎是我的AppDelegate处理NSManagedObjectContext,所以我不应该在我的其他ViewControllers中创建其他NSManagedObjectContexts.
所以问题是……
有没有任何惯例或智能方法来做到这一点?
谢谢.
最佳答案 我传递NSManagedObjectContext的方法是在每个视图控制器中传递一个iVar.我通常会修改初始化程序以包含赋值,类似这样的….
MyNewViewController.h
@interface MyNewViewController : UIViewController {
NSManagedObjectContext *managedObjectContext;
}
...
MyNewViewController.m
@implementation MyNewViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil andContext:(NSManagedObjectContext *)ctx {
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
managedObjectContext = ctx;
}
return self;
}
....
然后,当您调用视图控制器时,只需使用修改后的初始化程序.喜欢…
MyNewViewController *nv = [[MyNewViewController alloc] initWithNibName:@"MyNewViewController" bundle:nil andContext:self.managedObjectContext];
现在您已经获得了可以在视图控制器中使用的managedObjectContext的引用.