Bonjour à tous,
Je suis en train de parser un fichier xml, et comme l'éxécussion dure un certain moment, j'ai décidé d'utiliser les threads
Je lanse un thread dans la méthode viewDidLoad du rootViewController de cette maniére
	
	
	
		
et j'utilise un UIActivityIndicatorView * pour affirmer l'utilisateur que le fichier est en train d'étre parsé
	
	
	
		
Mon probléme est que je veux forcer l'attente du terminaison de ce thread pour continuer le reste de l'application
En fait mon thread parse un document xml et charge ses éléments dans un NSMutableArray et lesinsére ensuite dans une bd SQLite
	
	
	
		
puis le processus appelant qui est RootViewController se charge d'afficher les cellules du UITableView à partir du tableau qui a été déjà remplit par le thread avec le méthode
	
	
	
		
Y'a t'il une personne qui peut m'aider dans ce context et Merci beacoup
	
		
			
		
		
	
				
			Je suis en train de parser un fichier xml, et comme l'éxécussion dure un certain moment, j'ai décidé d'utiliser les threads
Je lanse un thread dans la méthode viewDidLoad du rootViewController de cette maniére
		Bloc de code:
	
	[NSThread detachNewThreadSelector:@selector(startParsing) toTarget:self withObject:nil ];      alert = [[[UIAlertView alloc] initWithTitle:@"Parsing Elements\nPlease Wait..." message:nil delegate:self cancelButtonTitle:nil otherButtonTitles: nil] autorelease];
    [alert show];et j'utilise un UIActivityIndicatorView * pour affirmer l'utilisateur que le fichier est en train d'étre parsé
		Bloc de code:
	
	UIActivityIndicatorView  *indicator = [[UIActivityIndicatorView alloc]       initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
     
     
    indicator.center = CGPointMake(alert.bounds.size.width / 2, alert.bounds.size.height - 50);
    [indicator startAnimating];
   [alert addSubview:indicator];
    [indicator release];Mon probléme est que je veux forcer l'attente du terminaison de ce thread pour continuer le reste de l'application
En fait mon thread parse un document xml et charge ses éléments dans un NSMutableArray et lesinsére ensuite dans une bd SQLite
		Bloc de code:
	
	-(void) startParsing{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];    XMLToObjectParser *myParser = [[XMLToObjectParser alloc] parseXMLAtURL:url toObject:@"aliment" parseError:nil];
arrayCount = [[myParser items] count]; 
    for(int i = 0; i<=arrayCount-1 ; i++) {
         
        aliment *new = [[aliment alloc] init];
        new = (aliment *)[[myParser items] objectAtIndex:i];
        [tableau addObject:new];
        NSLog(@"élément ajouté");
    }    
    NSLog(@"Dans le thread '%d'",[tableau count]);
 
    for(int i = 0; i<[tableau count] ; i++) {
         
        aliment *new = [[aliment alloc] init];
        new = (aliment *)[tableau objectAtIndex:i];
         
        [sqlManager insertIntoDatabase:new:db];
        NSLog(@"C'est inséré");
         
        [new release];
    }
    [self performSelectorOnMainThread:@selector(dismissingAlertView) withObject:nil waitUntilDone:YES];  
    [pool release];  
}puis le processus appelant qui est RootViewController se charge d'afficher les cellules du UITableView à partir du tableau qui a été déjà remplit par le thread avec le méthode
		Bloc de code:
	
	- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
     
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
       cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }
   NSString *ligneTableau = [NSString stringWithFormat:@"%@ %@", [[tableau objectAtIndex:indexPath.row] type],[[tableau objectAtIndex:indexPath.row] name]];
    cell.text=ligneTableau;    // Configure the cell.
    return cell;
}Y'a t'il une personne qui peut m'aider dans ce context et Merci beacoup
 
	 
	 
 
		