如何调用在另一个类中创建的NSMutableArray?

时间:2011-07-21 17:15:16

标签: xml parsing class nsmutablearray tableview

我创建了一个类XMLParsing.h / m,它加载一个URL,将XML解析为NSStrings和NSNumbers,然后将解析后的字符串放入名为“showArray”的NSMutableArray中。

设置XML以便每个孩子都有一个“id”,然后是其他变量。所以在数组中,我们有:

NSNumber :(来自XML的id) NSString :(标题) NSString :(介绍) NSString :(场地)

在另一个类ShowDetailViewController.h / m中,我想加载该数组及其对象,并且,基于在前一个视图中单击的TableView单元格,我想要nib中的项目(在这种情况下为标签) )用XML中的“id-specific”数据填充。所以,例如:

在我的TableView中,列出了每个节目的标题(来自XML)。用户单击标题,然后按下另一个视图,显示该节目的标题,描述和地点,从解析的XML加载。

所有这些解析数据都存在于NSMutableArray中,但我的问题是,我似乎无法访问另一个类中的对象。数组保持返回null。

我试过了:

在我的ShowDetailViewController.m中,我有一个方法,其中包含:

XMLParsing *xmlClass = [[XMLParsing alloc] init];
NSLog(@"The array contains: %@", xmlClass.showArray);
[xmlClass release];

但是,结果总是“数组包含:(NULL)” 如果我在XMLParsing类本身中运行相同的NSLog,它将打印整个数组。所以,我知道数据正好解析成字符串,并且存储在数组中。但是,它不能在制作它的类之外访问。

在XMLParsing类中,我制作了NSMutableArray * showArray,一个非原子,保留和合成的属性。我哪里错了?

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

在XMLParsing类中尝试此操作

-(NSMutableArray *)parseURL  {


self.showarray = [[NSMutableArray alloc]init];

NSString *getURLString = @"url"

NSURL *xmlURL = [NSURL URLWithString:getURLString];

xmlParser = [[NSXMLParser alloc] initWithContentsOfURL:xmlURL];

[xmlParser setDelegate:self];

[xmlParser parse];

return showarray;

}

你的showviewcontroller类

   XMLParsing *xmlClass = [[XMLParsing alloc] init];

        anyArray = [xmlClass parseURL];