58

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

在我的 .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 个项目。

我错过了一些非常明显的东西,我不知道是什么。

4

2 回答 2

148

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

categories = [[NSMutableArray alloc] init];

不要忘记在你的 -dealloc 中释放它。

于 2009-12-01T16:03:20.317 回答
8

使用初始化一个空数组

categories = [NSMutableArray array];

数组类方法是自动释放的,所以不需要释放。

于 2015-04-02T13:21:49.417 回答