Supprimer un objet dans les données de base
J'ai une entité dans ma base de données modèle comme ceci:
@interface Selection : NSManagedObject
@property (nonatomic, retain) NSString * book_id;
@property (nonatomic, retain) NSString * contenu;
@property (nonatomic, retain) NSNumber * page_id;
@property (nonatomic, retain) NSNumber * nbrOfOccurences;
@property (nonatomic, retain) NSString * next;
@property (nonatomic, retain) NSString * previous;
J'ai créé de nombreux Selection
s et enregistrés dans la Base de Données et je voudrais maintenant supprimer certaines sélections avec certains critères. Par exemple, je voudrais supprimer un Selection
objet si des correspondances suivantes:
content = test
page_id = 5
book_id = 1331313
Comment je peux faire cela?
source d'informationauteur samir | 2012-05-07
Vous devez vous connecter pour publier un commentaire.
Ce Mike Weller écrit est juste. Je vais élargir la réponse un peu.
Vous devez d'abord créer un
NSFetchRequest
comme suit:Ensuite, vous devez définir le prédicat de la demande comme suit:
où
Je suis en utilisant
%@
depuis que je suis en supposant que vous êtes à l'aide d'objets et non pas des valeurs scalaires.Maintenant que vous effectuez une extraction dans le contexte de la demande précédente:
results
contient tous les objets gérés qui correspondent à ce prédicat.Enfin, vous pourriez attraper les objets et de les appeler à la suppression.
Une fois fait, vous devez enregistrer le contexte que par la documentation.
Donc
Noter que
save
méthode renvoie une valeur booléenne. Ainsi, vous pouvez utiliser une approche semblable à la suivante ou afficher un message d'alerte à l'utilisateur. Source NSManagedObjectContext erreur d'enregistrement de.Vous devez effectuer une demande de récupération à l'aide d'un
NSPredicate
avec les conditions appropriées, et ensuite appeler ladeleteObject:
méthode surNSManagedObjectContext
avec chaque objet dans le jeu de résultats.En plus de Mike Weller et flexaddicted, après l'appel de
[context deleteObject:currentObj];
vous devezsave:
contexte:Que de la documentation:
Qui fait affaire dans mon cas.