2010-10-19 21 views
0

Je suis relativement nouveau sur le développement de l'iPhone et j'ai essayé de créer une application pour comprendre le fonctionnement de CoreData. J'essaye d'implémenter une fonctionnalité qui me permettra de détecter si quelque chose a été persisté pour stocker et si c'est le cas - donner à l'utilisateur la possibilité de supprimer ces objets. Je me demandais s'il y avait des problèmes de synchronisation qui doivent être pris en compte lors de la récupération de données sur le périphérique par opposition au simulateur.NSManagedObjectContext Différences entre le périphérique et le simulateur de CoreData

J'ai créé une application de données de base simple en utilisant l'assistant XCode pour présenter certaines données en utilisant une classe UITableViewController.

Je l'extrait de code suivant de ma classe RootViewController:

- (void)viewDidAppear:(BOOL)animated { 
    [super viewDidAppear:animated]; 

    NSSet* obj = nil; 
    NSManagedObjectContext *context = [self.fetchedResultsController managedObjectContext];  
    obj = [context registeredObjects]; 

    if (obj.count == 0) 
    { 
     // Do stuff to add initial data to store 
    } 
    else 
    { 
     // Do stuff to delete objects from store if user wants 
    } 
} 

Si je lance ce code sur le simulateur (ayant déjà ajouté à mon magasin) Je reçois une valeur non nulle pour obj.count, mais si je l'exécute sur le périphérique, obj.count est toujours zéro même si j'ai déjà ajouté au magasin.

Des idées où je pourrais me tromper?

Peut-être que mon approche globale de ce que je suis en train de réaliser est incorrect ......

Répondre

0

En guise de suivi, peut-être la question que je devrais poser est de savoir si je fais ça (encore une fois dans mon RootViewController):

- (NSFetchedResultsController *)fetchedResultsController { 

<snippet_begin> 

NSFetchedResultsController *aFetchedResultsController = 
[[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:nil cacheName:@"Root"]; 
aFetchedResultsController.delegate = self; 
self.fetchedResultsController = aFetchedResultsController; 

NSSet* obj = nil; 
NSManagedObjectContext *context = [self.fetchedResultsController managedObjectContext];  
obj = [context registeredObjects]; 

</snippet_end> 

} 

L'heure à laquelle le contexte devient déterministe est-elle valide?