NSMutableArray addObject不起作用

时间:2009-12-01 15:50:08

标签: objective-c nsmutablearray

我在视图控制器.h文件中声明了NSMutableArray *categories,并为其声明了属性。

在.m文件中parser:foundCharacters:委托的NSXMLParser方法中,我有以下代码:

-(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个项目。

我遗漏了一些非常明显的东西,我无法弄清楚是什么。

3 个答案:

答案 0 :(得分:145)

“0x0”部分是存储器地址。具体来说,“nil”,这意味着您的可变数组在被调用时不存在。尝试在-init方法中创建它:

categories = [[NSMutableArray alloc] init];

不要忘记在你的-dealloc中发布它。

答案 1 :(得分:7)

使用

初始化一个空数组
categories = [NSMutableArray array];

数组类方法是自动释放的,因此无需释放。

答案 2 :(得分:-2)

@property (Strong, nonatomic) NSMutableArray * yourArray;

你必须使用