ich an einem Ort bin in meiner Anwendung, bei der im Wesentlichen alle Viewcontroller eine lokale NSManagedObjectContext haben:iOS Obj-C. Posing richtige Lösung?
@property (strong, nonatomic) NSManagedObjectContext *managedObjectContext;
und jede segue übergibt die managedObjectContext über den gleichen Setter
[segue.destinationViewController setManagedObjectContext:self.managedObjectContext];
aus Java, wäre es einfach eine abstrakte Klasse zu erstellen, die jeder ViewController implementiert. In Objective-c scheint das nicht möglich zu sein. Was ich zu tun suche, ist eine Basisklasse, die diese Übergabe durchführt, aber im Grunde wird alles, was UIViewController implementiert, dies haben (einschließlich eines einfachen UIViewControllers und eines UITableViewControllers). Wäre es möglich/korrekt, eine "abstrakte" Klasse zu erstellen, die sich als UIViewController verhält?
Update:
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
Ich denke, Sie suchen vielleicht nach einer objektiven C-Kategorie. Sie werden verwendet, um Klassen zu erweitern. – Kyle
Klasse, die in Objective-C 1.0 posierte, war ein *** ***, also wurde sie in 2.0 entfernt. Ich glaube nicht, dass es jemals ein Teil der iOS NSObject-Klasse war. – CodaFi
Während ich noch nie in iOS posieren gesehen habe, habe ich etwas Ähnliches gesehen, um die UINavigationBar in Navigationssteuerungen zu ersetzen. – Kyle