J'ai une application, en utilisant Core Data avec un magasin SQLite.Cocoa-Touch, Core Data: Comment supprimer tous les objets pour une entité?
À un moment donné, j'aimerais supprimer tous les objets pour quelques entités. Il peut y avoir près de mille objets. D'après ce que je peux dire via google et les documents officiels, la seule façon de supprimer des objets est de [managedObjectContext deleteObject:(Entity *)]
pour chaque objet. Mais cela signifie que je dois d'abord aller chercher tous les objets.
Le magasin de données est juste sqlite, n'y a-t-il aucun moyen de lui passer simplement un TRUNCATE TABLE ZENTITY;
?
Je demande parce que je trouve mal à récupérer ~ 1k les lignes d'une base de données lorsque tout ce que vous voulez faire est de les supprimer. Je n'ai pas fait de benchmark pour ça, mais même si Core Data fait un chargement paresseux sur tous les objets, j'aimerais quand même pouvoir faire une troncature sur la table puisque cela ne nécessite même pas de compter en premier. – Prody
Faire des choses encombrantes est toujours une mauvaise solution, peu importe s'il y a un problème de performance. –
Ce n'est pas particulièrement lourd cependant. Il conserve l'API Core Data et indique clairement ce que fait votre code. ** Oui ** s'il y a un problème de performances, c'est mauvais, mais vous devez d'abord mesurer cela. –