NSMutableArray addObject不工作
我已经在我的视图控制器.h文件中声明了一个NSMutableArray *categories
,并为它声明了一个属性。NSMutableArray addObject不工作
在我的.m文件的NSXMLParser
委托的parser:foundCharacters:
方法,我有这样的代码:
-(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个元素应该在数组中。
我错过了一些非常明显的东西,我找不出什么。
初始化使用
categories = [NSMutableArray array];
阵列类方法自动释放所以没必要释放空数组。
Vishu - 您的解决方案正在运行,但我认为Joshua Nozzi的解决方案更好,因为它需要更少的内存。 –
这在功能上等同于我的回答5年半ealier,只是使用便捷方法而不是alloc/init。内存使用情况没有区别,结果完全相同。 –
@property (Strong, nonatomic) NSMutableArray * yourArray;
,你必须使用强。
这没有回答这个问题 - 数组没有被初始化,所以它不存在(所以是零)。另外,'strong'是ObjC 2属性的默认值,但我们不知道如何从给定的代码声明它。我们所知道的是它在运行时不存在,并且看起来像是一个类的ivar,所以我们只知道问题是在调用方法时没有分配数组。它*可能*在创建时已创建并在其他地方删除。我的观点是这个答案提出了很多假设,并且非常模糊。我没有看到它增加了更老的接受答案。 –
为了您的未来发布:格式化代码的方式是选择代码块,并使用帖子编辑器顶部的“代码”格式化程序按钮缩进所有4个空格。 –
对不起 - 我从另一个论坛复制并粘贴,猜测格式化没有多少支持!谢谢 – joec