2010-11-30 5 views
2

J'ai finalement réussi à faire fonctionner les données de base et à commencer à le comprendre. Jusqu'à présent, je viens de jouer dans une application basée sur la fenêtre avec des données de base activées, en jouant dans les fichiers de délégué de l'application.managedObjectContext dans Other View

Mais comment puis-je accéder à mon managedObjectContext depuis l'extérieur du délégué de l'application, par exemple si j'avais une sous-classe UIView?

J'espère que vous pouvez aider, merci.

+0

duplication possible de [partage NSManagedObjectContext et d'autres classes de service entre les onglets iphone/ipad] (http://stackoverflow.com/questions/3437033/sharing-nsmanagedobjectcontext-and-other-service-classes-between-iphone-ipad- onglets) – willcodejavaforfood

+0

Il vaut également la peine de mentionner deux fois avant de partager un managedObjectContext avec une sous-classe UIView. UIView sont intrinsèquement des vues et ne devraient pas traiter directement avec le modèle de données. Vous souhaitez probablement passer la référence de contexte à un autre contrôleur de vue, puis passer une référence d'un ou plusieurs objets gérés spécifiques à une vue, mais pas au contexte réel. – Rog

Répondre

3

Essayez d'utiliser

[[[UIApplication sharedApplication] delegate] managedObjectContext]; 

Pour se débarrasser des avertissements, CAST le délégué comme AppDelegate réelle; par exemple,

NSManagedObjectContext *context = [(YourAppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext]; 

EDIT:

Après avoir modifié toutes les données, vous devez l'enregistrer. Voici la méthode que j'utilise:

NSManagedObjectContext *moc = [self managedObjectContext]; 

NSError *error; 
if (![moc save:&error]) { 
    NSLog(@"Couldn't save current data in current method."); 
} 

Modifiez l'instruction log comme bon vous semble.

+0

Oh oh. Après des tests plus approfondis, il semble avoir mis en œuvre ce que les données ne reste que pendant l'application. Dès que l'application est fermée et rouverte, les données ont disparu! Des idées ?! –

+0

essayer le code de ma modification, devrait travailler! –

+0

Il s'avère que le problème d'économie de données était dû à ceci: http://stackoverflow.com/questions/4326303/datepicker-stopping-coredata-work –

Questions connexes