NSManagedObjectContext, mejor forma de pasarlo? ¿Acceder a él?

Tengo una pregunta sobre cómo pasar NSManagedObjectContext . En mi aplicación, parece que es mi AppDelegate que maneja NSManagedObjectContext , por lo que no debería crear otros NSManagedObjectContexts en mis otros ViewControllers .

Entonces la pregunta es …

¿Hay alguna convención o método inteligente para hacer esto?

Gracias.

La forma en que paso el NSManagedObjectContext es simplemente tener un iVar en cada controller de vista al que lo pasa. Normalmente modifico el inicializador para include la asignación, algo así …

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; } .... 

Luego, cuando llama al controller de vista, simplemente usa el inicializador modificado. Me gusta…

 MyNewViewController *nv = [[MyNewViewController alloc] initWithNibName:@"MyNewViewController" bundle:nil andContext:self.managedObjectContext]; 

Ahora tiene una reference a managedObjectContext que puede usar dentro de su controller de vista.