我的应用程序由TabBarController组成,每个选项卡都带有UITableView。
在启动时,我将XML文件从我的服务器解析为Object类,然后在第一个tableview中显示对象。
我的问题是,当我想解析第二个XML文件时该怎么办?目前,执行此操作时,“XML-file-2”中的信息将覆盖由“XML-file-1”解析的对象。我该怎么做呢?我是否为每个XML文件设置了另一个Object类,还是有另一个用于解决该问题的对象类?
我正在使用NSXMLParser。
答案 0 :(得分:1)
在该代码段(http://pastie.org/537227)的第21行上,您将产品数组(appDelegate.products
)设置为新的可变数组。如果你希望第二次运行附加到appDelegate.products,
,你应该看看appDelegate.products
是否已经有对象,如果是,请不要为它分配一个新数组,只需使用NSMutableArray将它们添加到它中即可addObject:方法
答案 1 :(得分:1)
我认为您应该考虑使用两个XMLParser
实例,每个实例用于您想要阅读的每个XML文件。它允许您同时读取尽可能多的XML
个文件而不会相互影响。它也更模块化。
答案 2 :(得分:0)
...不要覆盖已存在的数据......?
如果您在UITableView中显示内容,那么我愿意打赌你在那里有一个NSArray。希望如果你正确设置它,NSArray包含模型对象,每个模型对象对应于UITableView中的一行。但是,我建议使用NSMutableArray。然后,当您解析第二个XML文件并从中构建模型对象时,只需使用NSMutableArray的addObject:方法,然后在UITableView上使用reloadData。
答案 3 :(得分:0)
正如已经提到的notnoop,制作多个NSXMLParser实例将是最佳解决方案 一个名为Simple RSS Reader的开源iPhone RSS阅读器将是您现在想要的一个很好的样本 您可以原样使用简单RSS阅读器的RSSParser类。
HTH