私はアプリケーション内で、基本的にすべての ViewController がローカルの NSManagedObjectContext を持っている場所にいます:
@property (strong, nonatomic) NSManagedObjectContext *managedObjectContext;
すべてのセグエは同じセッターを介して 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