Bonjour
J'ai un problème dans Core Data ue je cherche à résoudre.
J'ai créé une table news, puis un objet NSManagedObject correspondant.
Ensuite, je cherche à enregistrer un nouvel objet dans la base, mais là arrivé le problème.
Une ligne se crée bien mais elle est vide. Donc je ne sais pas si le problème vient de l'enregistrement ou de la récupération.
Voici le code pour l'ajout :
Je précise que l'ajout dans list fonctionne, je vois correctement dans la liste.
Maintenant la récupération du contenu :
Mon objet managedObjectContext est dans mon appDelegate (créé automatiquement par xcode lorsque je demande un projet avec Core Data.
Je précise aussi que j'ai déjà supprimé mon application du simulateur et recompilé mais ça fonctionne pas mieux.
Voilà je pense que c'est tout, juste que mes 2 fonctions se situent dans un UITableViewController mais voilà
Geoffrey
J'ai un problème dans Core Data ue je cherche à résoudre.
J'ai créé une table news, puis un objet NSManagedObject correspondant.
Ensuite, je cherche à enregistrer un nouvel objet dans la base, mais là arrivé le problème.
Une ligne se crée bien mais elle est vide. Donc je ne sais pas si le problème vient de l'enregistrement ou de la récupération.
Voici le code pour l'ajout :
Bloc de code:
NewsAppDelegate* appDelegate = (NewsAppDelegate*)[[UIApplication sharedApplication]delegate];
News* news = (News*)[NSEntityDescription insertNewObjectForEntityForName:@"News" inManagedObjectContext:appDelegate.managedObjectContext];
news.idNews = [NSNumber numberWithInt:3];
news.title = @"Test 1";
news.content = @"Content of Test of course";
news.date = [NSDate date];
NSError* error;
if (![appDelegate.managedObjectContext save:&error]) {
UIAlertView* alerte = [[UIAlertView alloc] initWithTitle:@"Erreur de sauvegarde" message:[NSString stringWithFormat:@"%i in %@ : %@", error.code, error.domain, error.userInfo] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alerte show];
[alerte release];
}
[self.list addObject:news];
[self.tableView reloadData];
Je précise que l'ajout dans list fonctionne, je vois correctement dans la liste.
Maintenant la récupération du contenu :
Bloc de code:
NewsAppDelegate* appDelegate = (NewsAppDelegate*)[[UIApplication sharedApplication]delegate];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"News" inManagedObjectContext:appDelegate.managedObjectContext];
NSFetchRequest* request = [[NSFetchRequest alloc]init];
[request setEntity:entity];
NSSortDescriptor* sort = [[NSSortDescriptor alloc]initWithKey:@"date" ascending:NO];
NSArray* sortDescriptors = [NSArray arrayWithObject:sort];
[request setSortDescriptors:sortDescriptors];
[sort release];
NSError* error;
NSMutableArray* results = [[appDelegate.managedObjectContext executeFetchRequest:request error:&error]mutableCopy];
if (!results) {
UIAlertView* alerte = [[UIAlertView alloc] initWithTitle:@"Erreur de sauvegarde" message:[NSString stringWithFormat:@"%i in %@ : %@", error.code, error.domain, error.userInfo] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alerte show];
[alerte release];
}
[self setList:results];
[results release];
[request release];
Mon objet managedObjectContext est dans mon appDelegate (créé automatiquement par xcode lorsque je demande un projet avec Core Data.
Je précise aussi que j'ai déjà supprimé mon application du simulateur et recompilé mais ça fonctionne pas mieux.
Voilà je pense que c'est tout, juste que mes 2 fonctions se situent dans un UITableViewController mais voilà
Geoffrey