2010-05-18 5 views
1

Dans le code suivant, j'ai déterminé que tout fonctionnait, jusqu'à ce que [tableView reloadData] ait des NSLOGs configurés dans les méthodes déléguées de la vue tableau et qu'aucun d'entre eux ne soit appelé. J'ai d'autres méthodes faisant le même reloadData et cela fonctionne parfaitement. La seule différence que je sors est que c'est dans un bloc @catch. vous les gars intelligents peuvent peut-être voir quelque chose que je fais mal ...iphone reload tableView

@catch (NSException * e) {////chart is user genrated 
    logoView.image = nil; 
    NSInteger row = [picker selectedRowInComponent:0]; 
    NSString *selectedAircraft = [aircraft objectAtIndex:row]; 
    NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 
                 NSUserDomainMask, YES); 
    NSString *docsPath = [paths objectAtIndex:0]; 
    NSString *checklistPath = [[NSString alloc]initWithFormat:@"%@/%@.checklist",docsPath,selectedAircraft]; 
    NSString *dataString = [NSString stringWithContentsOfFile:checklistPath encoding: NSUTF8StringEncoding error:NULL]; 


    if ([dataString hasPrefix:@"\n"]) { 
     dataString = [dataString substringFromIndex:1]; 
    } 
    NSArray *tempArray = [dataString componentsSeparatedByString:@"\n"]; 

    NSDictionary *temporaryDictionary = [NSDictionary dictionaryWithObject: tempArray forKey:@"User Generated Checklist"]; 
    self.names = temporaryDictionary; 


    NSArray *tempArray2 = [NSArray arrayWithObject:@"01User Generated Checklist"]; 
    self.keys = tempArray2; 
    aircraftLabel.text = selectedAircraft; 
    checklistSelectPanel.hidden = YES; 
    [tableView reloadData]; 


} 
+0

Ce ne sera probablement pas aider, mais juste par curiosité, avez-vous essayé d'utiliser 'self.tableView' au lieu de' tableView'? – shosti

Répondre

1

« généré par l'utilisateur Check-list » et « 01User Généré Liste »

1

Vous ne voulez probablement pas entendre cela, mais vous ne mentionne pas spécifiquement il doit être demandé - vous avez effectivement mis le délégué tableView?

+0

oui j'ai. La vue de table fonctionne bien (et recharge) dans toutes les autres parties du code. – Brodie

+0

Assez juste. Et si vous déplacez le code vers une autre branche, en dehors du bloc catch? Ou bien, commentez tout code inutile simplement pour voir si vous pouvez obtenir la table à recharger? Ou manuellement définir le délégué juste avant le rechargement? –

+0

après un peu plus d'inspection, il semble que les méthodes de délégué "numberOf SectionsInTableView" et "numberOfRowsInSection" fonctionnent, cependant le "cellForRowatIndexPath" n'est pas. J'ai un nslog en haut de celui-là et ça ne s'est même pas déclenché ... cette section de code est identique à la section qui se trouve dans le bloc @try à l'exception de l'endroit où les données sont extraites. – Brodie

1

J'ai rencontré ce même problème. Après m'être arraché les cheveux pendant des jours, j'ai réalisé que j'avais réglé ma table comme la vue (c'est-à-dire que la vue de mon contrôleur était réglée sur la table), et apparemment, c'est un non-non.

Si votre table est votre point de vue, faire une autre vue, et placer la table dans la nouvelle vue vous avez créé. Et voila, votre table se rafraîchit.

+0

Je ne sais pas si c'est la solution ici, mais je trouve qu'avoir une tableview à l'intérieur de votre vue offre beaucoup plus de flexibilité avec l'ajustement de l'interface. –