NSMutableArray addObject не работает

Я объявил NSMutableArray *categories в моем файле контроллера .h и объявил для него свойство.

В методе parser:foundCharacters: делегата NSXMLParser в моем файле .m, у меня есть этот код:

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

Но когда я наводил строку [self.categories addObject:element] после перехода в нее в режиме отладки, XCode сообщает мне, что размер 0x0, 0 объектов. В моем XML файле есть 3 элемента, поэтому в массиве должно быть 3 элемента.

Мне не хватает чего-то действительно очевидного, и я не могу понять, что.

Ответы

Ответ 1

Часть "0x0" - это адрес памяти. В частности, "nil", что означает, что ваш изменяемый массив не существует в момент его вызова. Попробуйте создать его в своем методе -init:

categories = [[NSMutableArray alloc] init];

Не забудьте выпустить его в своем -dealloc.

Ответ 2

Инициализировать пустой массив, используя

categories = [NSMutableArray array];

Метод класса массива автореализовывается, поэтому нет необходимости выпускать.

Ответ 3

@property (Strong, nonatomic) NSMutableArray * yourArray;

вам нужно использовать Сильный.