我在我的应用程序中的一个地方,基本上每个 ViewController 都有一个本地 NSManagedObjectContext:
@property (strong, nonatomic) NSManagedObjectContext *managedObjectContext;
并且每个 segue 通过同一个 setter 传递 managedObjectContext
[segue.destinationViewController setManagedObjectContext:self.managedObjectContext];
来自 Java,很容易创建每个 ViewController 实现的抽象类。在 Objective-c 中,这似乎是不可能的。我想做的是有一个基类来执行这个传递,但基本上任何实现 UIViewController 的东西都会有这个(包括一个普通的 UIViewController 和一个 UITableViewController)。创建一个冒充 UIViewController 的“抽象”类是否可能/正确?
更新:
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