2010-05-09 3 views
0

Je travaille sur le code du lecteur RSS où les articles sont téléchargés et sont visibles hors ligne. Le problème est seulement après que tous les articles sont téléchargés, la tableview contenant les titres est mis à jour. Les données de base sont utilisées. Ainsi, chaque fois que NSobjectcontext est enregistré, [self tableview updatebegins] est appelé. La table est mise à jour via les données de base de fetchcontroller.Ajout d'une seule ligne une par une dans tableview à partir des données de base de l'iPhone

J'ai essayé d'enregistrer NSobjectcontext à chaque fois qu'un article est enregistré mais cela ne met pas à jour le tableau. Je veux un mécanisme similaire à instapaper tableview où les articles sont enregistrés et tableview est mis à jour immédiatement. S'il vous plaît aidez si vous connaissez la solution. Merci d'avance.


Ajout de code pour une meilleure compréhension

AppDelegate.m contient le code suivant

- (void)feedSuccess:(ZSURLConnectionDelegate*)delegate 

    NSManagedObjectContext *moc = [self managedObjectContext]; 

    CXMLElement *root = [document rootElement]; 
    CXMLElement *channel = [[root elementsForName:@"channel"] lastObject]; 

    NSFetchRequest *request = [[NSFetchRequest alloc] init]; 
    [request setEntity:[NSEntityDescription entityForName:@"FeedItem" inManagedObjectContext:moc]]; 
    for (CXMLElement *item in [channel elementsForName:@"item"])  
    { 
    // push element in core data and then save context 
    //Save context 
    [moc save:&error]; 
    ZAssert(error == nil, @"Error saving context: %@", [error localizedDescription]); 
    } 

ce qui déclenche le tableau des codes de changement de RootviewController.m

- (void)controllerWillChangeContent:(NSFetchedResultsController*)controller 
{ 
    [[self tableView] beginUpdates]; 
} 

Répondre

0

Si vous utilisez le contrôleur NSFetchedResults, utilisez simplement la méthode déléguée

- (void)controllerDidChangeContent:(NSFetchedResultsController *)controller; 

comme suit:

- (void)controllerDidChangeContent:(NSFetchedResultsController *)controller { 
// In the simplest, most efficient, case, reload the table view. 
    [self.tableView reloadData]; 
} 

Chaque fois que vous mettez à jour le NSManagedObjectContext sous-jacente, le tableau sera mis à jour automatiquement aussi.

+0

J'ai essayé votre code. La fonction controllerDidChangeContent est appelée quand l'élément est poussé (Context est sauvegardé) mais la tableview n'est pas mise à jour. S'il vous plaît aider. – user336685

+0

J'ai ajouté le code pour une meilleure compréhension. – user336685

Questions connexes