Question

Been recherche d'une solution depuis longtemps maintenant, mais toujours sans succès, peut-être que quelqu'un ici peut me aider.

I créé une application qui exécute un fil qui communique avec un serveur web en arrière-plan. De temps en temps le fil reçoit des informations que je voudrais afficher dans un UITableView. En raison de la nature dynamique du contenu, j'ai décidé un NSMutableArray devrait être suffisant pour stocker les informations du serveur Web.

Chaque fois que je reçois des informations de webservice mon AppDelegate envoie une notification. Mon UITableView enregistre pour recevoir certains types d'informations que je compte montrer dans le UITableView.

La méthode initWithStyle du UITableViewController contient le code suivant:

- (void)addContact:(NSNotification *)note {
    NSLog(@"%@", [note object]);

    NSString *message = (NSString *)[note object];
    NSString *name = [[message componentsSeparatedByString:@":"] objectAtIndex:2];

    contact = name;
    [array addObject:contact];
}   

- (void)viewDidLoad {
    [super viewDidLoad];

    array = [[NSMutableArray alloc] initWithObjects:@"test1", @"test2", nil];

    tv.dataSource = self;
    tv.delegate = self;

    self.tableView = tv;
}

Le tableau dans AddContact contient les données affichées dans la TableView. Toutes les données ajouter manuellement au tableau dans viewDidLoad: sera affiché dans le tableau, mais il ne se produit pas pour les données ajoutées dans la AjoutContact: méthode.

Quelqu'un at-il une idée de ce que je fais mal?

Était-ce utile?

La solution

La mise à jour qui se passe sur le thread principal? Vous pouvez utiliser ce type de fonction de rafraîchissement pour vous assurer qu'il fait.

- (void)refresh {
if([NSThread isMainThread])
{
    [self.tableView reloadData];
    [self.tableView setNeedsLayout];
    [self.tableView setNeedsDisplay];
}
else 
{
    [self performSelectorOnMainThread:@selector(refresh) withObject:nil waitUntilDone:YES];
}

}

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