Bonjour,

Dans mon application Iphone, j'ai des objets de type ArretSynthese avec comme attributs NomArret et Ville.

Juste après le remplissage de mon tableau qui comporte mes ArretSynthese, je fais un test si je peux accéder aux attributs :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
for (ArretSynthese *arretSynthese in tabListeArrets) {
		NSLog(@"%@",arretSynthese.Ville);
}
Cela fonctionne parfaitement, j'obtiens bien la liste des villes.
Même résultat si je demande arretSynthese.NomArret.

Plus tard dans mon programme, je fais appel à ce même tableau.
Et c'est la que mon problème arrive. Autant je peux parfaitement accéder à l'attribut NomArret, mais impossible pour l'attribut Ville. Mon programme quitte subitement, sans laisser le moindre message d'erreur en console.

Ce code fonctionne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
	for (ArretSynthese *arretSynthese in [listeArret tabListeArrets]) {
		if ([arretSynthese isKindOfClass:[ArretSynthese class]]) {
			NSLog(@"Type : arretSynthese");
			if ([arretSynthese.NomArret isKindOfClass:[NSString class]]) {
				NSLog(@"NomArret : type String");
			}
		}
	}
mais si je change l'attribut NomArret par l'attribut Ville dans le test de type de la classe, mon programme requitte subitement sans message d'erreur. Je pense pas que ce soit normal que le programme plante quand utilise la méthode isKindOfClass ...

C'est étrange, car après le remplissage du tableau, j'ai accès à mes 2 attributs, puis au cours du programme, je perds l'accès à "Ville".

Je précise que nul part ailleurs dans mon programme je modifie/lit mon tableau contenant mes objets ArretSynthese.

J'ai regardé du côté du setter de l'attribut Ville pour voir ce qui pouvait poser problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
-(void) setVille:(NSString *)ville{
}
Si j'utilise dans cette méthode :
ou alors
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Ville = [NSString stringWithFormat:@"%@",ville];
Cela fait planter mon programme quand j'essaye d'accèder à l'attribut Ville.

Par contre, si je fais :
ou encore
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Ville = [[NSString alloc] initWithFormat:@"%@",ville];
la, je peux accèder à mon attribut "Ville" partout dans mon programme.
Mais je peux pas laisser çà, car je ne peux pas faire ni de release, ni de autorelease. Et le nom de ma ville change.

Je preneur de toutes explications, doc, car je trouve ce problème très étrange.

J'éspere avoir été le plus clair possible.

Merci d'avance
Krisp