我创建了一个类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,一个非原子,保留和合成的属性。我哪里错了?
提前感谢您的帮助!
答案 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;
}
XMLParsing *xmlClass = [[XMLParsing alloc] init];
anyArray = [xmlClass parseURL];