estoy en un lugar en mi aplicación en la que esencialmente cada ViewController tiene una NSManagedObjectContext locales:iOS Obj-C. ¿Presentando la solución correcta?
@property (strong, nonatomic) NSManagedObjectContext *managedObjectContext;
y cada segue pasa el managedObjectContext a través de la misma incubadora
[segue.destinationViewController setManagedObjectContext:self.managedObjectContext];
Viniendo de Java, sería fácil de crear una clase abstracta que cada ViewController implementa. En Objective-c no parece que eso sea posible. Lo que quiero hacer es tener una clase base que realice este paso, pero básicamente cualquier cosa que implemente UIViewController tendrá esto (incluyendo solo un UIViewController simple así como un UITableViewController). ¿Sería posible/correcto crear una clase "abstracta" que se haga pasar por UIViewController que hace esto?
Actualización:
UIViewController + ManagedObjectContext.h
@interface UIViewController (ManagedObjectContext)
@property (strong, nonatomic) NSManagedObjectContext *managedObjectContext;
@end
UIViewController + ManagedObjectContext.m
#import "UIViewController+ManagedObjectContext.h"
@implementation UIViewController (ManagedObjectContext){
NSManagedObjectContext *context; // This is not valid, cant have local variables
}
@synthesize managedObjectContext; // This is not valid, must be @dynamic
-(void)setManagedObjectContext:(NSManagedObjectContext *)context{
//How do you have a local NSManagedObjectContext?
}
@end
Creo que podrías estar buscando una categoría Object-c. Se usan para extender clases. – Kyle
Clase posando en Objective-C 1.0 era un *** desastre ***, por lo que se ha eliminado en 2.0. No creo que haya sido alguna vez parte de la clase NSObject de iOS. – CodaFi
Aunque nunca he visto clases posando en iOS, he visto algo similar para reemplazar el UINavigationBar en los controladores de navegación. – Kyle