2010-08-27 13 views
0

J'ai configuré mon projet avec l'option "Utiliser Coredata".Problèmes avec NSManagedObjectContext

XCode évidemment mis tout cela pour moi automatiquement, et maintenant j'ai ces lignes dans le fichier d'en-tête délégué app:

@interface GFree2AppDelegate : NSObject <UIApplicationDelegate> { 
    UIWindow *window; 
    GFree2ViewController *viewController; 
    UINavigationController *navController; 

    NSManagedObjectContext *managedObjectContext_; 
    NSManagedObjectModel *managedObjectModel_; 
    NSPersistentStoreCoordinator *persistentStoreCoordinator_; 
} 

@property (nonatomic, retain) IBOutlet UIWindow *window; 
@property (nonatomic, retain) IBOutlet GFree2ViewController *viewController; 
@property (nonatomic, retain) IBOutlet UINavigationController *navController; 

@property (nonatomic, retain, readonly) NSManagedObjectContext *managedObjectContext; 
@property (nonatomic, retain, readonly) NSManagedObjectModel *managedObjectModel; 
@property (nonatomic, retain, readonly) NSPersistentStoreCoordinator *persistentStoreCoordinator; 

- (NSString *)applicationDocumentsDirectory; 

@end 

Ma première question est, pourquoi les pointeurs initiaux pour l'objet géré et d'autres choses avoir des underscores? C'est ainsi qu'ils sont utilisés dans le fichier .m et pourtant les @property n'ont pas de caractère de soulignement.

Ma question suivante est, je veux utiliser le contexte plus loin dans dans mon script, donc je l'ai utilisé ces lignes:

GFree2AppDelegate *delegate = [[UIApplication sharedApplication] delegate]; 
context = delegate.managedObjectContext; 

Maintenant, cela ne fonctionnera pas, car il n'y a pas obvs @synthesize. Mais de quoi ai-je besoin pour synthétiser? Est-ce que je synthétise AVEC le trait de soulignement, ou sans, et est-ce que je l'obtiens? delegate.managedObjectContext ou delegate.managedObjectContext_? Ou pas du tout? Ha .. Je ne suis pas sûr de comprendre tous ces trucs d'objets gérés.

Merci beaucoup. Tom

Répondre

0

Le trait de soulignement est juste un style de préférence, si vous voulez, vous pouvez synthétiser avec elle ou sans elle (mais si différent de la propriété déclarée vous précise le nom correct dans la déclaration de propriété avec getter=managedObjectContext par exemple

+0

hmm .... Je viens de supprimer toutes les instances du nom de la variable avec le trait de soulignement et remplacé sans le caractère de soulignement. –