web-dev-qa-db-fra.com

NSMutableArray addObject ne fonctionne pas

J'ai déclaré un NSMutableArray *categories dans mon fichier .h de contrôleur de vue, et lui a déclaré une propriété.

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

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

Mais quand je survole le [self.categories addObject:element] ligne après y être entré en mode débogage, XCode me dit que la taille est 0x0, 0 objets. Il y a 3 éléments dans mon fichier XML, donc 3 éléments doivent être dans le tableau.

Il me manque quelque chose de vraiment évident et je ne peux pas comprendre quoi.

54
joec

La partie "0x0" est une adresse mémoire. Plus précisément, "nil", ce qui signifie que votre tableau mutable n'existe pas au moment où il est appelé. Essayez de le créer dans votre méthode -init:

categories = [[NSMutableArray alloc] init];

N'oubliez pas de le publier dans votre -dealloc.

145
Joshua Nozzi

Initialiser un tableau vide à l'aide

categories = [NSMutableArray array];

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

7
Vishal16