2011-10-30 5 views
1

Je souhaite ajouter & supprimer de nouvelles entrées dans mon application. Lorsque je l'ajoute ou le supprime, il doit également effectuer la même action dans la base de données sqlite. Mais comment?Modification d'une base de données sqlite pré-remplie base de données gérée dans l'application IOS

L'entité que je veux gérer s'appelle "fugitive". En bas est mon premier Controller.m de vue (qui contient le tableview et le tableau nsmutable * articles) Code:

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

iBountyHunterAppDelegate *appDelegate = (iBountyHunterAppDelegate*)[[UIApplication sharedApplication] delegate]; 
NSManagedObjectContext *managedObjectContext = appDelegate.managedObjectContext; 
NSFetchRequest *request = [[NSFetchRequest alloc] init]; 
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Fugitive" inManagedObjectContext:managedObjectContext]; 
[request setEntity:entity]; 

NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES]; 
[request setSortDescriptors:[NSArray arrayWithObject:sortDescriptor]]; 

NSError *error; 
NSMutableArray *mutableFetchResults = [[managedObjectContext executeFetchRequest:request error:&error] mutableCopy]; 
if (mutableFetchResults == nil) { 
    // Handle the error; 
} 

self.items = mutableFetchResults; 
[mutableFetchResults release]; 
[request release]; 
[self.tableView reloadData]; 
} 

Même la moindre pointe sera très appréciée. Je vous remercie!

Répondre

0

Je pense que peut-être vous avez la mauvaise approche ici. Sans voir beaucoup de votre autre code je ne peux pas en dire trop mais voici comment CoreData devrait fonctionner:

Vous mettez à jour tout changement à CoreData FIRST, puis CoreData notifiera au délégué/observateur que les données sont à être rechargé, et c'est là que vous mettez à jour votre cache d'objets et notifiez l'affichage de la table pour mettre à jour.

Par conséquent, ne mettez pas à jour le tableau de données vous-même, vous le cachez simplement à partir de CoreData.

+0

Cela vous dérangerait si je vous ai donné un lien avec le projet pour m'aider un peu? Merci quand même. –

+0

C'est sans doute inutile, pourquoi ne pas vous référer à l'exemple d'Apple d'emplacements de la bibliothèque Xcode, c'est très simple. –

Questions connexes