2010-04-22 7 views
0

je comprends la difficulté à CoreData avec mon uitableview. J'ai des lignes qui sont supprimées et ajoutées tout ok .. et la tableview les affiche. Cependant, quand je lance alors une requête sur le nombre d'éléments dans la base de données, il renvoie le numéro avant que je l'appel de suppression.nombre de nombre de lignes dans iphone CoreData

donc un exemple, j'ai trois lignes. J'en supprime deux. Je m'attendrais à ce que mon code renvoie 1 (1 ligne restante) mais il retourne 3. Dois-je mettre à jour le jeu d'enregistrements ou quelque chose? ie: la suppression est faite, mais pas engagée ou quelque chose?

Voici le code que j'utilise pour interroger le nombre de lignes ... (et la raison pour laquelle j'ai besoin est d'exécuter des opérations sur le uitableview ... de sorte que le nombre de lignes dans le tableau doit correspondre au numéro retourné de mon fonction)

NSInteger numberofRows = 0; 
NSInteger section = 0; 

id <NSFetchedResultsSectionInfo> sectionInfo = [[fetchedResultsController sections] objectAtIndex:section]; 
numberofRows = [sectionInfo numberOfObjects]; 

NSLog(@"total rows=%i",numberofRows); 

donc ma méthode est de

  1. il y a 3 lignes uitableview et db
  2. supprimer des lignes sélectionnées (par exemple 2)
  3. reload vue de la table (montre une rangée restante)
  4. numéro de compte
  5. de lignes DB (3) des rendements

Ai-je besoin de rafraîchir la connexion ou quelque chose ?? merci pour toute aide!

Répondre

1

Selon la façon dont les lignes ont été supprimées, vous devrez peut-être appeler la méthode de NSManagedObjectContext save:. Cela va commettre tous les changements non enregistrés dans le magasin.

+0

utilisé une version de cette idée qui a travaillé - merci! –