Pregunta

He declarado una NSMutableArray *categories en mi controlador de vista .h, y declaró una propiedad para ello.

En el método parser:foundCharacters: del delegado NSXMLParser en mi archivo .m, tengo este código:

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

Pero cuando se ciernen sobre la línea [self.categories addObject:element] después de entrar en él en modo de depuración, XCode me dice que el tamaño es 0x0, 0 objetos. Hay 3 elementos en mi archivo XML para 3 artículos deben estar en la matriz.

Me estoy perdiendo algo muy obvio y no puedo averiguar qué.

¿Fue útil?

Solución

La parte "0x0" es una dirección de memoria. En concreto, "nulo", lo que significa que la matriz mutable no existe en el momento presente se está llamando. Trate de crear en su método init:

categories = [[NSMutableArray alloc] init];

No se olvide de liberar en su -dealloc.

Otros consejos

Inicializar una matriz vacía utilizando

categories = [NSMutableArray array];

El método de la clase de matriz son autoreleased así que no hay necesidad de liberar.

@property (Strong, nonatomic) NSMutableArray * yourArray;

tiene que usar Fuerte .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top