J'ai essayé d'ajouter un bouton après l'exécution d'un analyseur (sur un thread séparé). Je comprends que vous ne pouvez pas interagir avec les éléments de l'interface utilisateur sur un thread autre que le thread principal.Ajouter UIButton après l'exécution de l'analyseur (sur un thread séparé)
Je ne veux pas utiliser une minuterie ou un while ... donc ma question est
Une fois que l'analyseur se fait que suggérez-vous que je fais pour ajouter le bouton à la vue? Je ne veux pas qu'il soit ajouté auparavant parce que l'utilisateur arrivera à une table vide. Je ne veux pas non plus recharger la table une fois terminé car cela présente d'autres problèmes pour moi.
le performSelector sur le fil principal ne semble pas fonctionner pour moi non plus ..? Im un peu perdu ici ...
Des suggestions?
Voici où je coup d'envoi à un autre thread pour démarrer l'analyseur (Dans AppDelegate)
// begin background downloads
[NSThread detachNewThreadSelector:@selector(parseNewData) toTarget:self withObject:nil];
Ma fonction parseNewData (En AppDelegate)
-(void)parseNewData {
//start network activity spinner and release controller when done
RootViewController * root = [[RootViewController alloc] init];
[root downloadIcon];
[root release];
//create pool to avoid memory leak
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
// get the XML path and start parsing
NSURL *pathURL = [NSURL URLWithString:@"http://www.mysite.com/file.xml"];
NSXMLParser *parser = [[NSXMLParser alloc] initWithContentsOfURL:pathURL];
[parser setDelegate:self];
[parser parse];
//drain pool
[pool drain];
[pool release];
}
Parser Avez-fini (En AppDelegate)
- (void)parserDidEndDocument:(NSXMLParser *)parser
{
// parser is finished, we can now kill the network activity icon on root view controller
RootViewController * root = [[RootViewController alloc] init];
[root killDownloadIcon];
[root performSelectorOnMainThread:@selector(unhideShowtimesButton) withObject:nil waitUntilDone:NO];
[root release];
}
Mon unhideShowtimesButton sur (en RootViewController)
-(void)unhideShowtimesButton {
showtimesButton.hidden = FALSE;
}
je fais à mon unhideShowtimesButton (vérifié par point de rupture), mais son juste ignorant complètement le cache = False.
qu'en est-il des notifications? – ennuikiller
J'ai ajouté du code, qu'est-ce qui vous dérange? Merci! – Louie