Question

Je vais avoir des problèmes avec l'affichage des résultats d'une source de données. Ce code affichera un autre (et correct) résultat dans la console, mais les résultats dans toutes sortes de conneries au hasard dans le simulateur.

( "résultats" est une propriété NSMutableArray pour la classe.)

-(void) handleSearchForKeywords: (NSString *) keywords {
    [results removeAllObjects];
    int r = rand() % 10;
    for( int i = 0; i < r; i++ ) {
        [results addObject:[NSString stringWithFormat:@"test %i: %@", i, keywords]];
    }
    [self reloadTheTable];
}

-(void) reloadTheTable {
    NSLog( @"current array contents: %@", results );
    [tableView reloadData];
}

Je devine que cela pourrait avoir quelque chose à voir avec la conservation de la mémoire du tableau, ou les chaînes du tableau? Je crains que je n'ai pas encore eu le coup de cela.

[modifier en réponse à Marc Bessey - Je pense que tout est ici vos méthodes de source de données de base]

-(NSInteger) tableView: (UITableView *) tableView numberOfRowsInSection: (NSInteger) section {
    return [results count];
}

-(UITableViewCell *) tableView: (UITableView *) tableView cellForRowAtIndexPath: (NSIndexPath *) indexPath {
    static NSString *SearchViewControllerCell = @"SearchViewControllerCell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier: SearchViewControllerCell];
    if( cell == nil ) {
        cell = [[[UITableViewCell alloc] initWithFrame: CGRectZero reuseIdentifier: SearchViewControllerCell] autorelease];
        NSUInteger row = [indexPath row];
        [cell setText:[results objectAtIndex:row]];
    }
    return cell;
}
Était-ce utile?

La solution

Je ne pense pas que le problème est dans le code que vous avez posté. Il est plus probable dans le code qui implémente la source de données pour votre point de vue de la table.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top