Bonjour, ça fait maintenant quelques mois que j'apprends l'objective C et donc je bloque sur les NSMutableArray. Je veux que mon programme stock des objets dans un tableau, j'ai donc utilisé un NSMutableArray. L'insertion des objets fonctionne parfaitement, le problème survient lorsque je tente de récupérer mes objets stockés dans le tableau. Pour expliquer voici mon code:
J'ai une classe Medias qui contient un tableau d'objets Films.
Initialisation du NSMutableArray contenant des objets de type Films dans le init de ma classe Medias
:
Methode de ma classe Medias permettant d'ajouter des objets films:
Methode de ma classe Medias permettant d'afficher le contenu du tableau d'objets Films:
La méthode addFilmToList est appelée lorsque je clique sur un bouton de mon IHM. J'ai l'impression que la méthode objectAtIndex modifie le contenu du tableau. Je m'explique, lors de l'ajout du premier élément le contenu du tableau est le suivant:
index 0 -> *Films
index 1 -> *Films
J'affiche alors le contenu du tableau cela fonctionne. Je regarde ensuite le contenu du tableau avec le debugger et là surprise j'obtiens ceci:
index 0 -> *Films
index 1 -> *NSObject dont le contenu est isa
Quelqu'un aurait-il une idée de où pourrait être le problème?
Merci
J'ai une classe Medias qui contient un tableau d'objets Films.
Initialisation du NSMutableArray contenant des objets de type Films dans le init de ma classe Medias
:
Bloc de code:
-(id) init{
if (self = [super init]){
Film *film = [[Films alloc]init];
filmsTab = [[NSMutableArray alloc] initWithObjects: film, nil];
[filmsTab retain];
[film release];
}
return self;
}
Methode de ma classe Medias permettant d'ajouter des objets films:
Bloc de code:
-(void)addFilmToList:(NSString *)n :(NSString *)a{
Film *film = [[Films alloc]init];
[film setName: n];
[film setAuthor: a];
[filmsTab addObject: film];
[film release];
}
Methode de ma classe Medias permettant d'afficher le contenu du tableau d'objets Films:
Bloc de code:
-(void)displayAllFilms{
NSLog(@ "nombre de films dans la list: %d\n",[filmsTab count]);
for(int i = 1; i< [filmsTab count] ; i++)
{
[[filmsTab objectAtIndex:i] displayFilm];
}
}
La méthode addFilmToList est appelée lorsque je clique sur un bouton de mon IHM. J'ai l'impression que la méthode objectAtIndex modifie le contenu du tableau. Je m'explique, lors de l'ajout du premier élément le contenu du tableau est le suivant:
index 0 -> *Films
index 1 -> *Films
J'affiche alors le contenu du tableau cela fonctionne. Je regarde ensuite le contenu du tableau avec le debugger et là surprise j'obtiens ceci:
index 0 -> *Films
index 1 -> *NSObject dont le contenu est isa
Quelqu'un aurait-il une idée de où pourrait être le problème?
Merci