XMLParser

BadzBadz Membre
avril 2012 modifié dans Vos applications #1
[font=arial,helvetica,sans-serif]Bonjour à  tous,[/font]

[font=arial,helvetica,sans-serif]Je fais une petite application qui permet de sélectionner des formations.[/font]

[font=arial,helvetica,sans-serif]J'explique : Première page, afficher des domaines (administration, bureautique, informatique, ...), seconde page afficher les lieux de formations, 3ème page afficher les modules en fonction du domaine et du lieu (Bien débuter en informatique, Apprendre la bureautique, ...), et c'est au passage de cette 3ème page que je bloque, quand je choisis un domaine et un lieu où il y a 10 formations très exactement ça passe et quand il y a plus de 10 formations ça m'affiche que les 10 premières et en dessous de 10 formations j'ai l'erreur la:[/font]





2012-04-17 16:12:33.379 Catalogue_iPhone1[4270:12203] j 3097

2012-04-17 16:12:33.386 Catalogue_iPhone1[4270:12203] j 3098

2012-04-17 16:12:33.454 Catalogue_iPhone1[4270:12203] idmodlieu 106, idtableau_ 5

2012-04-17 16:12:33.455 Catalogue_iPhone1[4270:12203] idmodlieu 227, idtableau_ 5



*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 2 beyond bounds [0 .. 1]'.



[font=arial,helvetica,sans-serif]Mon code est le suivant : [/font]



<br />
@implementation ContactViewController<br />
@synthesize  monModule,monModule2,monDomaine,monLieu,monModuleLieu;[/color]<br />
[color="#bf2e9d"]// The designated initializer.  Override if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad.<br />
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {<br />
    if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])<br />
    {[/color]<br />
[color="#bf2e9d"]    }<br />
    return self;<br />
}[/color]<br />
[color="#bf2e9d"]/*<br />
// Implement loadView to create a view hierarchy programmatically, without using a nib<br />
- (void)loadView {<br />
}<br />
*/[/color]<br />
<br />
[color="#bf2e9d"]// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.<br />
- (void)viewDidLoad {[/color]<br />
[color="#bf2e9d"]    NSString *iddom_ = monDomaine.id_;<br />
    NSString *libdom = monDomaine.lab;<br />
    NSString *idlieu = monLieu.id_lieu;<br />
    NSString *liblieu = monLieu.lib_lieu;[/color]<br />
[color="#bf2e9d"]    tableau = [[NSMutableArray alloc] init];<br />
NSString *monURL = [[NSBundle mainBundle] pathForResource:@&quot;cat_module&quot; ofType:@&quot;xml&quot;];<br />
NSURL *url = [NSURL fileURLWithPath:monURL];<br />
    XMLToObjectParser *myParser = [[XMLToObjectParser alloc] parseXMLAtURL:url toObject:@&quot;Module&quot; parseError:nil];<br />
for(int i = 0; i &lt; [[myParser items] count]; i++)<br />
    {<br />
monModule = (Module *)[[myParser items] objectAtIndex:i];<br />
	    NSString *idTableau = [NSString stringWithFormat:@&quot;%@&quot;,[[[myParser items] objectAtIndex:i]iddom]];<br />
	    // NSLog(@&quot;id tab, id domaine %@, %@&quot;,idTableau, iddom_);<br />
	    //[tableau addObject:monModule];<br />
	    if ([iddom_ isEqualToString:idTableau])<br />
	    {<br />
		    [tableau addObject:monModule];<br />
		    //NSLog(@&quot;j&#39;y suis&quot;);<br />
	    }<br />
}[/color]<br />
[color="#bf2e9d"]    tableau_ = [[NSMutableArray alloc] init];<br />
NSString *monURL_ = [[NSBundle mainBundle] pathForResource:@&quot;cat_moduleslieux&quot; ofType:@&quot;xml&quot;];<br />
    NSURL *url_ = [NSURL fileURLWithPath:monURL_];<br />
    XMLToObjectParser *myParser_ = [[XMLToObjectParser alloc] parseXMLAtURL:url_ toObject:@&quot;Modlieu&quot; parseError:nil];[/color]<br />
[color="#bf2e9d"]    int i=[[myParser_ items]count];<br />
for(int j = 0; j &lt; i; j++)<br />
    {[/color]<br />
[color="#bf2e9d"]	    monModuleLieu = (Modlieu *)[[myParser_ items] objectAtIndex:j];[/color]<br />
[color="#bf2e9d"]	    NSString *idTableau_ = [NSString stringWithFormat:@&quot;%@&quot;,[[[myParser_ items] objectAtIndex:j]idlieumod]];<br />
	    //[tableau_ addObject:monModuleLieu];<br />
	    NSLog(@&quot;j %d&quot;,j);<br />
	    //[tableau addObject:monModule];<br />
	    if ([idlieu isEqualToString:idTableau_])<br />
	    {<br />
		    [tableau_ addObject:monModuleLieu];<br />
		    //NSLog(@&quot;j&#39;y suis&quot;);<br />
	    }<br />
    }<br />
    [super viewDidLoad];<br />
}[/color]<br />
[color="#bf2e9d"]- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {<br />
    return [tableau count];<br />
    return [tableau_ count];<br />
}<br />
/*<br />
// Override to allow orientations other than the default portrait orientation.<br />
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {<br />
// Return YES for supported orientations<br />
return (interfaceOrientation == UIInterfaceOrientationPortrait);<br />
}<br />
*/[/color]<br />
[color="#bf2e9d"]- (void)didReceiveMemoryWarning {<br />
// Releases the view if it doesn&#39;t have a superview.<br />
    [super didReceiveMemoryWarning];[/color]<br />
[color="#bf2e9d"]// Release any cached data, images, etc that aren&#39;t in use.<br />
}[/color]<br />
[color="#bf2e9d"]- (void)viewDidUnload {[/color]<br />
[color="#bf2e9d"]    tableView = nil;<br />
// Release any retained subviews of the main view.<br />
// e.g. self.myOutlet = nil;<br />
}[/color]<br />
<br />
[color="#bf2e9d"]- (void)dealloc {[/color]<br />
[color="#bf2e9d"]}[/color]<br />
[color="#bf2e9d"]- (UITableViewCell *)tableView UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath  {[/color]<br />
[color="#bf2e9d"]    NSString *iddom_= monDomaine.id_;<br />
    NSString *idlieu = monLieu.id_lieu;<br />
    static NSString *CellIdentifier = @&quot;Cell&quot;;<br />
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];<br />
    if (cell == nil) {<br />
	    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] ;<br />
    }[/color]<br />
[color="#bf2e9d"]//NSString *ligneTableau = [NSString stringWithFormat:@&quot;%@ &quot;,[[tableau objectAtIndex:indexPath.row] lab]];<br />
    NSString *ligneTableau_ = [NSString stringWithFormat:@&quot;%@ &quot;,[[tableau_ objectAtIndex:indexPath.row] idmodlieu]];<br />
    NSString *idTableau_ = [NSString stringWithFormat:@&quot;%@&quot;, [[tableau_ objectAtIndex:indexPath.row] idlieumod]];<br />
	 //NSLog(@&quot;idTableau %@, idlieu %@&quot;,idTableau_,idlieu);<br />
    cell.text=ligneTableau_;<br />
    NSLog(@&quot;idmodlieu %@, idtableau_ %@&quot;,[[tableau_ objectAtIndex:indexPath.row] idmodlieu],[[tableau_ objectAtIndex:indexPath.row] idlieumod]);<br />
   /* if ([idTableau_ isEqualToString:idlieu])<br />
    {<br />
	   cell.text=ligneTableau2;<br />
	    NSLog(@&quot;idmodlieu %@&quot;,[[tableau_ objectAtIndex:indexPath.row] idmodlieu]);<br />
	    // cell.text=monModule2.lab;<br />
    }*/[/color]<br />
[color="#bf2e9d"]    //[tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationTop];<br />
    //else cell.text=@&quot;&quot;; // Configure the cell.<br />
    return cell;<br />
}[/color]<br />
[color="#bf2e9d"]- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {<br />
    // Navigation logic may go here -- for example, create and push another view controller.<br />
PDF_Module *module_lieu = [[PDF_Module alloc] initWithNibName:@&quot;PDF_Module&quot; bundle:nil];<br />
module_lieu.monModule=[tableau objectAtIndex:indexPath.row];<br />
[self.navigationController pushViewController:module_lieu animated:YES];[/color]<br />
<br />
[color="#bf2e9d"]}<br />
@end<br />




[font=arial,helvetica,sans-serif]Je vous remercie d'avance.[/font]

Réponses

  • BadzBadz Membre
    Personne ? image/sad.png' class='bbc_emoticon' alt=':(' />
  • CéroceCéroce Membre, Modérateur
    Que veux-tu que nous te disions ?

    Tu as une exception, regarde pourquoi elle se produit au débogueur, et corrige ton bug.
  • BadzBadz Membre
    avril 2012 modifié #4
    Si j'avais la solution à  mon problème je n'aurais pas posté ce message, je pensais qu'il y avait une erreur dans ma boucle [font=helvetica, arial, sans-serif]int[/font][font=helvetica, arial, sans-serif] i=myParser_ [/size][/font][/color][color=#2E595D][font=helvetica, arial, sans-serif][size=3]items[/size][/font][/color][color=#282828][font=helvetica, arial, sans-serif][size=3[/font][font=helvetica, arial, sans-serif]count[/font][font=helvetica, arial, sans-serif]]; [/font][font=helvetica, arial, sans-serif]for[/font][font=helvetica, arial, sans-serif]([/font][font=helvetica, arial, sans-serif]int[/font][font=helvetica, arial, sans-serif] j = [/font][font=helvetica, arial, sans-serif]0[/font][font=helvetica, arial, sans-serif]; j < i; j++), mais rien n'y fait pour ça que je suis venu demander votre aide, au cas ou vous auriez déjà  eu l'erreur la ...[/font]
  • AliGatorAliGator Membre, Modérateur
    Le code, non indenté et non mis dans des balises "code" prévues à  cet effet sur le forum, est illisible en l'état. Merci d'éditer ton message pour rendre le code lisible en utilisant lesdites balises.



    Et sinon pour ton problème, bah heu... met des breakpoints et regarde pas à  pas où ça coince, quoi...
  • Visiblement tu pointes sur un index qui n'existe pas dans ton tableau, donc comme dise les autres, breakpoints ...
  • BadzBadz Membre
    Voilà  code mit dans sa balise, désolé.

    Breakpoints et NSLOG j'ai fait je vois pas d'où vient l'erreur.
  • AliGatorAliGator Membre, Modérateur
    Bah déjà  si tu nous disais à  quelle ligne ça plantait, et ce que tu as déjà  testé, ça pourrait aider...
  • BadzBadz Membre
    avril 2012 modifié #9
    J'ai honte mais bon ... dans cela il ne fallait pas compter mes 2 tableaux pour définir la longueur de mon tableau principal il fallait juste compter le tableau en question ... Je sais logique.

    <br />
    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {<br />
    	//return [tableau count];<br />
    	return [tableau_ count];<br />
    }<br />
    
  • BadzBadz Membre
    avril 2012 modifié #10
    Bonjour à  tous, je suis toujours sur le même code que la dernière fois :
    <br />
    //<br />
    //  AnotherViewController.m<br />
    //  Test<br />
    //<br />
    //  Created<br />
    //  Copyright<br />
    //<br />
    #import &quot;ContactViewController.h&quot;<br />
    #import &quot;RootViewController.h&quot;<br />
    #import &quot;XMLToObjectParser.h&quot;<br />
    #import &quot;PDF_Module.h&quot;<br />
    #import &quot;AffichageLieu.h&quot;<br />
    @implementation ContactViewController<br />
    @synthesize  monModule,monModule_,monDomaine,monLieu,monModuleLieu,monModFin;<br />
    // The designated initializer.  Override if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad.<br />
    - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {<br />
    	if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])<br />
    	{<br />
    	  <br />
    	}<br />
    	return self;<br />
    }<br />
    /*<br />
    // Implement loadView to create a view hierarchy programmatically, without using a nib<br />
    - (void)loadView {<br />
    }<br />
    */<br />
    <br />
    // Implement viewDidLoad to do additional setup after loading the view, typically from a nib.<br />
    - (void)viewDidLoad<br />
    {<br />
    	NSString *iddom_ = monDomaine.id_;<br />
    	NSString *idlieu = monLieu.id_lieu;<br />
    	NSString *idmodfin = monModule.id_;<br />
    	tableau_ = [[NSMutableArray alloc] init];<br />
    NSString *monURL_ = [[NSBundle mainBundle] pathForResource:@&quot;cat_moduleslieux&quot; ofType:@&quot;xml&quot;];<br />
    	NSURL *url_ = [NSURL fileURLWithPath:monURL_];<br />
    	XMLToObjectParser *myParser_ = [[XMLToObjectParser alloc] parseXMLAtURL:url_ toObject:@&quot;Modlieu&quot; parseError:nil];<br />
      <br />
    	int i=[[myParser_ items]count];<br />
    	 for(int j = 0; j &lt; i; j++)<br />
    	 {<br />
    	<br />
    	 monModuleLieu = (Modlieu *)[[myParser_ items] objectAtIndex:j];<br />
    	<br />
    	 NSString *idTableau_ = [NSString stringWithFormat:@&quot;%@&quot;,[[[myParser_ items] objectAtIndex:j]idlieumod]];<br />
    	 if ([idlieu isEqualToString:idTableau_])<br />
    		{<br />
    			[tableau_ addObject:monModuleLieu];<br />
      <br />
    		}<br />
    	 }<br />
      <br />
    	tableau = [[NSMutableArray alloc] init];<br />
    NSString *monURL = [[NSBundle mainBundle] pathForResource:@&quot;cat_module&quot; ofType:@&quot;xml&quot;];<br />
    NSURL *url = [NSURL fileURLWithPath:monURL];<br />
    	XMLToObjectParser *myParser = [[XMLToObjectParser alloc] parseXMLAtURL:url toObject:@&quot;Module&quot; parseError:nil];<br />
    for(int i = 0; i &lt; [[myParser items] count]; i++)<br />
    	{<br />
      monModule = (Module *)[[myParser items] objectAtIndex:i];<br />
    		NSString *idTableau = [NSString stringWithFormat:@&quot;%@&quot;,[[[myParser items] objectAtIndex:i]iddom]];<br />
    		if ([iddom_ isEqualToString:idTableau])<br />
    		{<br />
    			[tableau addObject:monModule];<br />
    			//NSLog(@&quot;tableau %@&quot;, tableau);<br />
    		}<br />
    }<br />
      <br />
    	tab_fin = [[NSMutableArray alloc] initWithObjects:idmodfin, nil];<br />
    		int idx = 0;<br />
      <br />
    	for(id id_ in tableau_)<br />
    	{<br />
    		NSString *idtest = [NSString stringWithFormat:@&quot;%@&quot;, [[tableau_ objectAtIndex:idx] idmodlieu]];<br />
    		idx ++;<br />
    		int idw = 0;<br />
    		for(id idlol in tableau)<br />
    		{<br />
    		  <br />
    			 NSString *idbesoin = [NSString stringWithFormat:@&quot;%@&quot;, [[tableau objectAtIndex:idw] id_]];<br />
    		  <br />
    			NSString *labmod = [NSString stringWithFormat:@&quot;%@&quot;, [[tableau objectAtIndex:idw] lab]];<br />
    			idw ++;<br />
    		//monModFin = (ModFin *)[idlol objectAtIndex:idw];<br />
    			// NSLog(@&quot;module id %@&quot;,[tableau objectAtIndex:idw]);<br />
    		  <br />
    			//monModFin-&gt;idlol = [NSString stringWithFormat:@&quot;%@&quot;, [[tableau objectAtIndex:idw] id_]];<br />
    			//NSLog(@&quot;monModFin idlol %@&quot;,monModFin.idlol);<br />
    			if ([idtest isEqualToString:idbesoin])<br />
    			{<br />
    			  <br />
    				[tab_fin addObject:labmod];<br />
    			  <br />
    			   // NSLog(@&quot;idbesoin %@, monmodfin.idlol %@&quot;,idbesoin,monModFin.idlol);<br />
    			   // NSLog(@&quot;module idbesoin %@&quot;,idbesoin);<br />
    			  <br />
    			}<br />
    		 }<br />
    	  <br />
    	}<br />
      <br />
      <br />
    		[super viewDidLoad];<br />
    }<br />
    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {<br />
    	//return [tableau count];<br />
    	//return [tableau_ count];<br />
       return [tab_fin count];<br />
    }<br />
    /*<br />
    // Override to allow orientations other than the default portrait orientation.<br />
    - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {<br />
    // Return YES for supported orientations<br />
    return (interfaceOrientation == UIInterfaceOrientationPortrait);<br />
    }<br />
    */<br />
    - (void)didReceiveMemoryWarning {<br />
    // Releases the view if it doesn&#39;t have a superview.<br />
    	[super didReceiveMemoryWarning];<br />
    <br />
    // Release any cached data, images, etc that aren&#39;t in use.<br />
    }<br />
    - (void)viewDidUnload {<br />
      <br />
    	tableView = nil;<br />
    // Release any retained subviews of the main view.<br />
    // e.g. self.myOutlet = nil;<br />
    }<br />
    <br />
    - (void)dealloc {<br />
      <br />
    }<br />
    - (UITableViewCell *)tableView :(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath  {<br />
      <br />
    	static NSString *CellIdentifier = @&quot;Cell&quot;;<br />
    	UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];<br />
    	if (cell == nil) {<br />
    		cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] ;<br />
    	}<br />
    	NSString *ligneTableau = [NSString stringWithFormat:@&quot;%@&quot;,[tab_fin objectAtIndex:indexPath.row]] ;<br />
      <br />
    	cell.text=ligneTableau;<br />
    	return cell;<br />
    }<br />
    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {<br />
    	// Navigation logic may go here -- for example, create and push another view controller.<br />
    PDF_Module *pdfmodule= [[PDF_Module alloc] initWithNibName:@&quot;PDF_Module&quot; bundle:nil];<br />
       //  NSString *id_ = [NSString stringWithFormat:@&quot;%@&quot;, [tab_fin objectAtIndex:indexPath.row] ];<br />
      <br />
    	//NSString *idbe = [NSString stringWithFormat:@&quot;%@&quot;, [[tab_idfin objectAtIndex:indexPath.row] idbesoin]];<br />
      <br />
       // NSLog(@&quot;idbesoin %@&quot;, idbe);<br />
    	//NSString *idlool = [NSString stringWithFormat:@&quot;%@&quot;,[[tab_idfin objectAtIndex:indexPath.row]idlol]] ;<br />
       // monModule.id_  = [[tableau objectAtIndex:indexPath.row]id_];<br />
    	 //NSLog(@&quot;monModule_.id_  %@&quot;, monModule.id_ );<br />
    	pdfmodule.monModFin =  monModFin;<br />
    [self.navigationController pushViewController:pdfmodule animated:YES];<br />
    }<br />
    @end<br />
    




    Dans la dernière partie :
    <br />
    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {<br />
    	// Navigation logic may go here -- for example, create and push another view controller.<br />
    PDF_Module *pdfmodule= [[PDF_Module alloc] initWithNibName:@&quot;PDF_Module&quot; bundle:nil];<br />
       //  NSString *id_ = [NSString stringWithFormat:@&quot;%@&quot;, [tab_fin objectAtIndex:indexPath.row] ];<br />
      <br />
    	//NSString *idbe = [NSString stringWithFormat:@&quot;%@&quot;, [[tab_idfin objectAtIndex:indexPath.row] idbesoin]];<br />
      <br />
       // NSLog(@&quot;idbesoin %@&quot;, idbe);<br />
    	//NSString *idlool = [NSString stringWithFormat:@&quot;%@&quot;,[[tab_idfin objectAtIndex:indexPath.row]idlol]] ;<br />
       // monModule.id_  = [[tableau objectAtIndex:indexPath.row]id_];<br />
    	 //NSLog(@&quot;monModule_.id_  %@&quot;, monModule.id_ );<br />
    	pdfmodule.monModFin =  monModFin;<br />
    [self.navigationController pushViewController:pdfmodule animated:YES];<br />
    }<br />
    




    je souhaiterais faire passer en paramètre ceci qui se trouve dans le Didload dans le tab_fin :
    <br />
      NSString *idbesoin = [NSString stringWithFormat:@&quot;%@&quot;, [[tableau objectAtIndex:idw] id_]];<br />
    




    Une idée ?

    Merci.
  • Dis, c'est vraiment toi qui produit ce code ? Car il faut juste faire comme pdfmodule.monModFin = monModFin;.

    Bien sur faut setter quelque petit truc dans PDF_Module... (Pourquoi y'a un '_' ?)

    Google est ton ami sinon, je vois pas comment tu pourrais avoir des soucis, vu que tu l'as deja fait pour une autre variable image/rolleyes.gif' class='bbc_emoticon' alt='::)' />
  • Oui oui moi qui produit, pas sans mal je dois l'avouer ...

    Je suis débutant en programmation je me sers de beaucoup de tutos à  vrai dire, setter ?

    Pour le _ je met beaucoup de _ dans mes classes, projet etc ça gêne ou c'est une question comme ça ?
  • Pour la convention de nommage : http://forum.cocoacafe.fr/topic/5722-convention-de-nommage/



    Regarde dans ton PDF_Module ce que tu as mis comme propriété pour la variable monModFin et fait de même (ou quasiment) pour celle que

    tu veux passer en paramètre. Puis apres tu feras pdfmodule.tavariable = @ta string;
  • BadzBadz Membre
    avril 2012 modifié #14
    Justement monModFin est crée à  partir d'une classe ModFin, donc dans PDF_Module et dans le code la elles ont la même propriété, mon problème est que j'ai l'impression : modFin.idlol = [/color]tableau[color=#000000] [/color][color=#3f217c]objectAtIndex[/color][color=#000000]:idw] [/color][color=#2e595d]id_[/color][color=#000000 ; ne passe pas, quand je fais NSLOG de modfin.idlol j'ai (null) et de [/color]tableau[color=#000000] [/color][color=#3F217C]objectAtIndex[/color][color=#000000]:idw] [/color][color=#2E595D]id_[/color][color=#000000 j'ai la bonne valeur ...
  • Tu as setter quel propriété pour ton objet idlol ?
  • Setter ? bah c'est un id qui parcours mon tableau, je ne l'ai pas setter (?)
  • Montre nous ton PDF_Module.h, stp image/huh.gif' class='bbc_emoticon' alt='???' />
  • <br />
    //<br />
    //  PDF_Module.h<br />
    //  Catalogue_iPhone<br />
    //<br />
    //  Created<br />
    //  Copyright<br />
    //<br />
    #import &lt;UIKit/UIKit.h&gt;<br />
    #import &quot;Module.h&quot;<br />
    #import &quot;ModFin.h&quot;<br />
    #import &quot;Modlieu.h&quot;<br />
    @interface PDF_Module : UIViewController{<br />
        Module *monModule;<br />
        ModFin *monModFin;<br />
        Modlieu *monModLieu;<br />
        IBOutlet UIWebView *WebViewPDF;<br />
    }<br />
    @property (nonatomic, retain) Module *monModule;<br />
    @property (nonatomic, retain) ModFin *monModFin;<br />
    @property (nonatomic, retain) Modlieu *monModLieu;<br />
    @end<br />
    
  • XodiaXodia Membre
    avril 2012 modifié #19
    Tu remarques pas un truc bizarre ? Tu set une propriété a par exemple l'objet monModFin de type ModFin * (@property (nonatomic, retain)) ...

    Tu peux me dire exactement ce que cela fait ? image/wink.png' class='bbc_emoticon' alt=';)' />

    Je vois pas ton problème sérieusement, tu déclares:
    <br />
    @property (nonatomic, retain) NSString *monId;<br />
    




    En mettant au préalable la variable dans ta classe.

    Et apres tu fais:
    <br />
    pdfmodule.monId = [color=#666600][[/color][color=#660066]NSString[/color][color=#000000] stringWithFormat[/color][color=#666600]:@[/color][color=#008800]&quot;%@&quot;[/color][color=#666600],[/color][color=#000000] [/color][color=#666600][[[/color][color=#000000]tableau objectAtIndex[/color][color=#666600]:[/color][color=#000000]idw[/color][color=#666600]][/color][color=#000000] id_[/color][color=#666600]]];[/color]<br />
    




    Ce que je comprend pas dans ta démarche, c'est que tu l'as fait pour un autre objet, mais tu sais pas le refaire ?

    Donc je me pose une question, sais-tu ce que tu fais ?

    Essai de comprendre ton code aulieu de te noyer dedans.. image/rolleyes.gif' class='bbc_emoticon' alt='::)' />



    Ou alors j'ai pas du tout compris ce que tu veux image/xd-laugh.gif' class='bbc_emoticon' alt='xd' />
  • BadzBadz Membre
    avril 2012 modifié #20
    Honnêtement je ne sais même pas, j'ai pas suivi de formation assez poussé pour connaitre beaucoup de choses sur l'objective c du coup je découvre par moi même en ce moment même.



    En faite, dans :

    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    PDF_Module *pdfmodule= [/color][color=#4b8186]PDF_Module[/color][color=#000000] [/color]alloc[color=#000000 initWithNibName:@PDF_Module bundle:nil];



    pdfmodule.monModFin= color=#4b8186]tab_fin[/color] [color=#3f217c]objectAtIndex[/color]:indexPath.[color=#7340a3]row[/color;

    NSLog(@idmodule_ en bas%@", color=#4b8186]tab_idfin[/color] [color=#3f217c]objectAtIndex[/color]:indexPath.[color=#7340a3]row[/color);

    /color][color=#bf2e9d]self[/color][color=#000000].[/color][color=#7340a3]navigationController[/color][color=#000000] [/color]pushViewController[color=#000000]:pdfmodule [/color]animated[color=#000000]:[/color][color=#bf2e9d]YES[/color][color=#000000;

    }

    Je voudrais retourner la valeur [NSString stringWithFormat:@%@", [/color][color=#4b8186]tableau[/color][color=#000000] [/color]objectAtIndex[color=#000000]:idw] [/color][color=#2e595d]id_[/color][color=#000000];

    Or quand je cherche à  l'affecter à  une variable public cela me renvoie le résultat (NULL)

    par exemple je vais juste changer les noms pour être plus clair : modFin.monId = [/color]tableau[color=#000000] [/color][color=#3F217C]objectAtIndex[/color][color=#000000]:idw] [/color][color=#2E595D]id_[/color][color=#000000 ; ne passe pas, quand je fais NSLOG de modfin.monId j'ai (null) et de [/color]tableau[color=#000000] [/color][color=#3F217C]objectAtIndex[/color][color=#000000]:idw] [/color][color=#2E595D]id_[/color][color=#000000 j'ai la bonne valeur.

    C'est ça le problème, je voudrais mettre résultat de [/color]tableau[color=#000000] [/color][color=#3F217C]objectAtIndex[/color][color=#000000]:idw] [/color][color=#2E595D]id_[/color][color=#000000 dans une variable mais ça ne passe pas.
  • Oups. My bad.

    Try this :


    <br />
    NSString *tmp = [[NSString alloc] initWithFormat: @&quot;%@&quot;, [tab_idfin objectAtIndex: indexPath.row]];<br />
    pdfmodule.monId = tmp;<br />
    
  • BadzBadz Membre
    avril 2012 modifié #22
    Très bien ça fonctionne comme cela, mais ça fonctionne avec l'identifiant quand je veux mettre son libellé ça ne fonctionne plus, il faudrait que j'ajoute dans ce même tableau tab_fin l'id ET le libellé, je n'affiche pas l'id mais que je veux pouvoir le mettre en paramètre à  tmp, et le libellé lui serait affiché, en gros faire correspondre l'id et le libellé.
    <br />
    - (UITableViewCell *)tableView :(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath  {<br />
       <br />
        static NSString *CellIdentifier = @&quot;Cell&quot;;<br />
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];<br />
        if (cell == nil) {<br />
    	    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] ;<br />
        }<br />
        NSString *ligneTableau = [NSString stringWithFormat:@&quot;%@&quot;,[[tab_fin objectAtIndex:indexPath.row] [color=#ff0000]labmod[/color]]] ;<br />
       <br />
        cell.text=ligneTableau;<br />
        return cell;<br />
    }<br />
    


    J'aimerai pouvoir faire cela en faite, mais labmod n'est pas possible.
  • BadzBadz Membre
    avril 2012 modifié #23
    J'ai pensé faire cela :
    <br />
    tab_fin = [[NSMutableArray alloc] init];<br />
    	int idx = 0;<br />
    	for(id id_ in tableau_)<br />
    	{<br />
    		NSString *idtest = [NSString stringWithFormat:@&quot;%@&quot;, [[tableau_ objectAtIndex:idx] idmodlieu]];<br />
    		idx ++;<br />
    		int idw = 0;<br />
    		for(id idlol in tableau)<br />
    		{<br />
    		  <br />
    			NSString *idbesoin = [NSString stringWithFormat:@&quot;%@&quot;, [[tableau objectAtIndex:idw] id_]];<br />
    		  <br />
    			NSString *labmod = [NSString stringWithFormat:@&quot;%@&quot;, [[tableau objectAtIndex:idw] lab]];<br />
    			idw ++;<br />
    			//monModFin = (ModFin *)[idlol objectAtIndex:idw];<br />
    			// NSLog(@&quot;module id %@&quot;,[tableau objectAtIndex:idw]);<br />
    		  <br />
    			//monModFin-&gt;idlol = [NSString stringWithFormat:@&quot;%@&quot;, [[tableau objectAtIndex:idw] id_]];<br />
    			//NSLog(@&quot;monModFin idlol %@&quot;,monModFin.idlol);<br />
    			if ([idtest isEqualToString:idbesoin])<br />
    			{<br />
    				//[tab_fin addObject:idbesoin];<br />
    				//[tab_fin initWithObjects:labmod,idbesoin, nil];<br />
    				modFin.idbesoin = idbesoin;<br />
    				modFin.labmod = labmod;<br />
    			  <br />
    			  <br />
    			  <br />
    			  <br />
    				 NSLog(@&quot;idbesoin %@, monmodfin.lab %@&quot;,modFin.idbesoin,modFin.labmod);<br />
    				// NSLog(@&quot;module idbesoin %@&quot;,idbesoin);<br />
    			  <br />
    			}<br />
    			<br />
    		}<br />
    	  <br />
    	}<br />
    <br />
    [color=#4b8186][color=#000000]  [[/color]tab_fin[color=#000000] [/color][color=#3f217c]addObject[/color][color=#000000]:[/color]modFin[color=#000000]];[/color][/color]<br />
    




    Or l'affectation ne se fait pas ?! Le NSLog(@idbesoin %@, monmodfin.lab %@",modFin.idbesoin,modFin.labmod); me renvoie NULL


    <br />
    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {<br />
    	// Navigation logic may go here -- for example, create and push another view controller.<br />
    	PDF_Module *pdfmodule= [[PDF_Module alloc] initWithNibName:@&quot;PDF_Module&quot; bundle:nil];<br />
    		NSString *tmp = [[NSString alloc] initWithFormat: @&quot;%@&quot;, [[tab_fin objectAtIndex: indexPath.row]idbesoin]];<br />
    	pdfmodule.monId = tmp;<br />
    	[self.navigationController pushViewController:pdfmodule animated:YES];<br />
    }<br />
    




    avec modFin.h :
    <br />
    @interface ModFin : NSObject<br />
    {<br />
    @public<br />
    	NSString *idbesoin;<br />
    	NSString *labmod;<br />
      <br />
    }<br />
    @property (nonatomic, retain) NSString *idbesoin;<br />
    @property (nonatomic, retain) NSString *labmod;<br />
    @end<br />
    
  • Pour trouver une solution au problème, les cellules d'un tableau ne sont pas toujours actives surtout si elle est invisible, en gros

    Cette fonction :

    - (UITableViewCell *)tableView image/sad.png' class='bbc_emoticon' alt=':(' />UITableView *)tableView cellForRowAtIndexPathimage/sad.png' class='bbc_emoticon' alt=':(' />NSIndexPath *)indexPath

    n'est appelé que si la cellule est affiché, alors ne fait pas trop de boulot de lecture dedans mais sépare

    la realisation des array et la demande de cellule.

    Je suis certain que 10 est la limite de tes cellules affichées !



    jfp
  • BadzBadz Membre
    mai 2012 modifié #25
    Merci Pautex pour ton aide mais ce n'est plus mon problème actuellement, mon problème est le suivant :

    Problème avec l'affectation de modFin :





    <br />
    tab_fin = [[NSMutableArray alloc] init];<br />
    	    int idx = 0;<br />
    	    for(id id_ in tableau_)<br />
    	    {<br />
    			    NSString *idtest = [NSString stringWithFormat:@&quot;%@&quot;, [[tableau_ objectAtIndex:idx] idmodlieu]];<br />
    			    idx ++;<br />
    			    int idw = 0;<br />
    			    for(id idlol in tableau)<br />
    			    {<br />
    				 <br />
    					    NSString *idbesoin = [NSString stringWithFormat:@&quot;%@&quot;, [[tableau objectAtIndex:idw] id_]];<br />
    				 <br />
    					    NSString *labmod = [NSString stringWithFormat:@&quot;%@&quot;, [[tableau objectAtIndex:idw] lab]];<br />
    					    idw ++;<br />
    					    //monModFin = (ModFin *)[idlol objectAtIndex:idw];<br />
    					    // NSLog(@&quot;module id %@&quot;,[tableau objectAtIndex:idw]);<br />
    				 <br />
    					    //monModFin-&gt;idlol = [NSString stringWithFormat:@&quot;%@&quot;, [[tableau objectAtIndex:idw] id_]];<br />
    					    //NSLog(@&quot;monModFin idlol %@&quot;,monModFin.idlol);<br />
    					    if ([idtest isEqualToString:idbesoin])<br />
    					    {<br />
    							    //[tab_fin addObject:idbesoin];<br />
    							    //[tab_fin initWithObjects:labmod,idbesoin, nil];<br />
    							    modFin.idbesoin = idbesoin;<br />
    							    modFin.labmod = labmod;<br />
    						 <br />
    						 <br />
    						 <br />
    						 <br />
    								 NSLog(@&quot;idbesoin %@, monmodfin.lab %@&quot;,modFin.idbesoin,modFin.labmod);<br />
    							    // NSLog(@&quot;module idbesoin %@&quot;,idbesoin);<br />
    						 <br />
    					    }<br />
    					   <br />
    			    }<br />
    		 <br />
    	    }[/color][/color]<br />
    [color="#000000"][color="#000000"]  [tab_fin addObject:modFin];[/color][/color]<br />
    <br />
    [color="#000000"][color="#000000"]
    
    Or l'affectation ne se fait pas ?! Le NSLog(@idbesoin %@, monmodfin.lab %@",modFin.idbesoin,modFin.labmod); me renvoie NULL alors que idbesoin ([NSString stringWithFormat"%@", [/color][color=#000000]tableau objectAtIndex[/color][color=#666600]:[/color][color=#000000]idw[/color][color=#666600 id_]]; et labmod ([NSString stringWithFormat"%@", [/color][color=#000000]tableau objectAtIndex[/color][color=#666600]:[/color][color=#000000]idw[/color][color=#666600 lab]]; me renvoie la bonne valeur.







    <br />
    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {<br />
    	    // Navigation logic may go here -- for example, create and push another view controller.<br />
    	    PDF_Module *pdfmodule= [[PDF_Module alloc] initWithNibName:@&quot;PDF_Module&quot; bundle:nil];<br />
    			    NSString *tmp = [[NSString alloc] initWithFormat: @&quot;%@&quot;, [[tab_fin objectAtIndex: indexPath.row]idbesoin]];<br />
    	    pdfmodule.monId = tmp;<br />
    	    [self.navigationController pushViewController:pdfmodule animated:YES];<br />
    }[/color][/color]<br />
    [color="#666600"][color="#666600"]
    


    avec modFin.h :





    <br />
    @interface ModFin : NSObject[/color][/color]<br />
    [color="#006666"][color="#006666"]{[/color][/color]<br />
    [color="#006666"][color="#006666"]@public[/color][/color]<br />
    [color="#006666"][color="#006666"]	    NSString *idbesoin;[/color][/color]<br />
    [color="#006666"][color="#006666"]	    NSString *labmod;[/color][/color]<br />
    [color="#006666"][color="#006666"]  [/color][/color]<br />
    [color="#006666"][color="#006666"]}[/color][/color]<br />
    [color="#006666"][color="#006666"]@property (nonatomic, retain) NSString *idbesoin;[/color][/color]<br />
    [color="#006666"][color="#006666"]@property (nonatomic, retain) NSString *labmod;[/color][/color]<br />
    [color="#006666"][color="#006666"]@end<br />
    
  • XodiaXodia Membre
    Tu dois vraiment comprendre ce que tu fais... Serieusement image/sleep.png' class='bbc_emoticon' alt='-_-' />'



    Ou est-ce que tu initialise - déclares - ton pointeur de type ModFin ?

    Si tu alloc pas ton pointeur, lui demander pas de te faire le cafe ! On est pas en Java ici image/angry.gif' class='bbc_emoticon' alt='>:(' /> (troll: off)
  • BadzBadz Membre
    ok, mais problème résolu j'ai utilisé une autre méthode.
Connectez-vous ou Inscrivez-vous pour répondre.