Comment puis-je supprimer tous les objets? Je sais que je peux enlever un par est-il possible de supprimer tout sans itération de tous les matrices?
merci p> p>
7 Réponses :
juste itérer le tableau et les supprimer. Il n'y a pas de méthode définie pour les supprimer tous. P>
Ok, merci, espérons qu'ils nous fourniront une meilleure façon de le faire à l'avenir :)
Vous pouvez également démolir la pile (relâchant le En outre, il est peu probable qu'ils fournissent cette fonctionnalité à l'avenir car il est facile de supprimer le fichier. Toutefois, si vous estimez qu'il est important, déposez un radar et laissez Apple savoir. Sinon, ils ne sauront pas combien de personnes veulent cette fonctionnalité. P> nsmanagedObjectContext code>, nspersistentStore code> et nsmanagedObjectmodel code>) et supprimez le fichier. Serait probablement plus rapide que itérant sur toute votre base de données et supprimer chaque objet individuellement. P>
Marquez des objets pour la suppression, puis sauvegarder les travaux de la manière dont les données de base doivent toujours exécuter les règles de validation de tous les objets supprimés. Après tout, un objet peut refuser la suppression basée sur la manière dont il répond à Si: p>
ALORS: P>
-Validatefordelete: code>. P>
C'est ce que je fais pour "réinitialiser" mon magasin de données:
+1 pour presque pas de notation de points. Bon travail. En outre, supprimez les appels de libération si vous avez besoin d'une mise en œuvre de l'ARC.
Merci. J'ai posté une version modifiée qui utilise -PerformBlockandwait: code>
@stifin: y a-t-il un moyen dans lequel je peux réinitialiser les données de toutes les entités sauf une de l'URL de magasin ?? Par exemple: disons que nous avons 3 entités A, B et C. Je souhaite réinitialiser les données dans A et B, mais pas C. C devrait être restée la même. Quoi qu'il en soit dans lequel cela peut être mis en œuvre?
@Asn Cette solution implique la suppression de l'ensemble du fichier contenant toutes les entités. Vous ne pouvez pas supporter partiellement un fichier: c'est complètement parti ou ce n'est pas le cas. Dans ce cas, vous devrez trouver un moyen de stocker une entité C ailleurs avant de supprimer le magasin de données.
Cette fonction supprime le fichier DB SQLite actuel du disque et en crée une nouvelle. C'est beaucoup plus rapide que tout Supprimer itératif. Si vous souhaitez appeler ce délégué de l'application extérieure (en supposant que l'intégration de la chaudière Coredata), vous pouvez utiliser Ce pour faire référence à votre délégué de votre application: p> n'oubliez pas d'importer l'en-tête . p> p>
Rapide et simple - je l'aime, merci de partage ;-)
Lorsque vous supprimez tout le cache et les documents, vous supprimez la base de données. Nécéraire appel à GestionedObjectContext
NSArray *documents = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSArray *caches = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSMutableArray *paths = [NSMutableArray array];
[paths addObjectsFromArray:documents];
[paths addObjectsFromArray:caches];
for (NSUInteger i = 0; i < [paths count]; i++) {
NSString *folderPath = [paths objectAtIndex:i];
NSLog(@"Attempting to remove contents for: %@", folderPath);
//Remove all cached data in the local app directory
NSArray *dirContents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:folderPath error:&error];
for (NSString *strName in dirContents) {
[[NSFileManager defaultManager] removeItemAtPath:[folderPath stringByAppendingPathComponent:strName] error:&error];
if (error != nil) {
NSLog(@"Error removing item: %@ : %@", strName, error.description);
} else {
NSLog(@"Removed item: %@", strName);
}
}
}
J'ai utilisé le code de STIFIN et mis à jour pour utiliser -PerformBlockandWait: code>
Dupliqué possible de Supprimer / réinitialiser toutes les entrées dans les données de base?