Je cherche simplement des moyens d'accéder à un objet modèle simple (au sens MVC) depuis mon contrôleur. En ce moment je crée le modèle dans l'applicationDelegate, et le passe au contrôleur quand je crée le contrôleur.Lier modèle à contrôleur dans une application simple?
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Setup Model
DataModel *tempDataModel = [[DataModel alloc] init];
[self setDataModel:tempDataModel];
[tempDataModel release];
// Setup Controllers
Controller *rootController = [[Controller alloc] initWithModel:[self dataModel]];
UINavigationController *tempNavController = [[UINavigationController alloc] initWithRootViewController:rootController];
[self setNavController:tempNavController];
[rootController release];
[tempNavController release];
[window addSubview:[[self navController] view]];
[window makeKeyAndVisible];
return YES;
}
à l'intérieur du contrôleur I ont:
@property (nonatomic, retain)DataModel *dataModel;
et:
- (id)initWithModel:(id)newModel {
self = [super init];
if(self) {
NSLog(@"%s", __PRETTY_FUNCTION__);
dataModel = [newModel retain];
}
return self;
}
- (void)dealloc {
NSLog(@"%s", __PRETTY_FUNCTION__);
[dataModel release];
[super dealloc];
}
Cela fonctionne très bien, mais je suis juste curieux de savoir si cela est correct en termes de MVC et de bonne conception. Dans les applications précédentes, j'ai:
- occasion d'une instance Partagée (Singleton)
- a créé le modèle de l'intérieur du contrôleur.
Les commentaires me apprécié: