NSMutableArray addObject ne fonctionne pas

J’ai déclaré une NSMutableArray *categories dans mon fichier .h de contrôleur de vue, et déclaré une propriété pour celle-ci.

Dans la méthode parser:foundCharacters: du délégué NSXMLParser dans mon fichier .m, j’ai ce code:

 -(void)parser:(NSXMLParser *) parser foundCharacters:(NSSsortingng *)ssortingng { if (elementFound) { element = ssortingng; [self.categories addObject:element]; } } 

Mais quand je survole la ligne [self.categories addObject:element] après l’avoir [self.categories addObject:element] en mode debug, XCode m’indique que la taille est 0x0, 0 objects. Il y a 3 éléments dans mon fichier XML, donc 3 éléments doivent figurer dans le tableau.

Il me manque quelque chose de vraiment évident et je n’arrive pas à comprendre quoi.

La partie “0x0” est une adresse mémoire. Spécifiquement, “nil”, ce qui signifie que votre tableau mutable n’existe pas au moment de l’appel. Essayez de le créer dans votre méthode -init:

 categories = [[NSMutableArray alloc] init]; 

N’oubliez pas de le libérer dans votre -dealloc.

Initialiser un tableau vide en utilisant

 categories = [NSMutableArray array]; 

La méthode de classe de tableau est automatiquement libérée, donc pas besoin de libérer.

 @property (Strong, nonatomic) NSMutableArray * yourArray; 

vous devez utiliser Strong .