我在视图控制器.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个项目。
我遗漏了一些非常明显的东西,我无法弄清楚是什么。
答案 0 :(得分:145)
“0x0”部分是存储器地址。具体来说,“nil”,这意味着您的可变数组在被调用时不存在。尝试在-init方法中创建它:
categories = [[NSMutableArray alloc] init];
不要忘记在你的-dealloc中发布它。
答案 1 :(得分:7)
使用
初始化一个空数组categories = [NSMutableArray array];
数组类方法是自动释放的,因此无需释放。
答案 2 :(得分:-2)
@property (Strong, nonatomic) NSMutableArray * yourArray;
你必须使用强。