iphone – NSManagedObjectContext,传递它的最佳方式?访问它?

我有一个关于如何传递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的引用.

点赞