2011-05-20 179 views
0

您好朋友,我想问一下如何返回Conn.xmlParser ,因为connectionDidFinishLoading是无效的,我需要这个结果才能在UITableView中解析我如何使用Conn的值.mlParser?在收到服务器的响应后解析UITableViewCell中的xml

请帮助。

-(void)connectionDidFinishLoading:(NSURLConnection *)connection 
    { 
     NSLog(@"DONE. Received Bytes: %d", [Conn.webData length]); 
     ta=Conn.webData; 
     if(Conn.xmlParser) 
     { 
      [Conn.xmlParser release]; 
     } 

     Conn.xmlParser = [[NSXMLParser alloc] initWithData: Conn.webData]; 

     [Conn.xmlParser setDelegate: self]; 

     [Conn.xmlParser setShouldResolveExternalEntities: YES]; 
     [Conn.xmlParser parse]; 

     [connection release]; 
     [Conn.webData release]; 
    } 
+0

如果这是您已实现的委托方法,然后你做一些简单存储变量的类。 – FreeAsInBeer 2011-05-20 11:42:22

+0

如果代表不是'无效',你会如何得到结果?因为你不是一个叫这种方法... – 2011-05-20 12:17:59

+0

对不起,我不明白我收到从我的服务器Conn.webData,但我不能用它我们的这个功能 – djboss 2011-05-20 12:32:38

回答

2

确保您的委托还实现NSXMLParserDelegate协议。然后,可以调用didStartElement,didEndElement,didEndDocument等

我通常创建一个NSArray(或NSMutableArray的),其然后被你在使用上述的NSXMLParser方法的Webdata被检索类型的对象进行填充。也可以使用这个数组作为UITableView的cellForRowAtIndexPath中的数据源。

当您到达didEndDocument时,只需调用[myUITableView reload]来更新表视图。 (除非tableview和连接委托是在两个不同的类中,那么你应该使用KVO让tableviewdelegate知道数据已被检索)。

跟进:

而并非只是给你的例子(其中有已经在网络上几个),这将只是让你有更多的问题,我将试图解释它是什么你应该了解你是否会成为一名成功的iOS开发人员。

如果下面的步骤对您来说似乎过于令人生畏,我建议您退后一步,尝试慢慢解决问题。如果你还没有取得进展,那么去购买Mark,Nutting和LaMarche开始的iPhone 4开发的副本,然后再回头看看,当你更好地理解Objective-C和iPhone编程的基本过程时。

为了实现自己的目标:

首先,你应该问问自己,你所要完成的是什么。

您正在从网站(webservice或许?)获取数据,并且您想解码(解析)该信息并将其显示在tableview中。正确?

因此,要解决您的问题,您必须拆开问题并确保您了解如何完成任务的每个部分。

  1. 创建一个独立的类,根据您要从您的网站收到的数据类型来建模。如果您正在获取指定颜色,年,模型的汽车物体,则应该创建一个具有颜色,年份和模型属性的Car类。

  2. 从网站获取数据。由于您已经在上面显示的代码中捕获了连接事件,因此您似乎有一些想法如何执行此操作。但是,您是否了解ConnectionDidFinishLoading中发生了什么?

  3. 解析网站返回的数据。这需要使用XML解析器,至少你似乎至少知道你需要在这里做一些事情来解析数据。它还需要一个地方来存储从网站返回的数据。您在步骤1中创建的类型的对象数组将是您返回和解析数据的存储区域。最后,它要求您了解从网站传递给您的数据的细节,以便您了解如何解析数据并将其正确存储(并且它确实是XML格式的,否则XML解析将无法在此工作) 。

  4. 在你的UITableView中显示解析的数据。这要求您了解如何在tableview中显示数据以及如何设置tableview的数据源。

其次,你应该寻找示例代码,你可以学习,做你所要完成和阅读苹果文档以获得什么人,何时,以创建您想要的结果牢牢把握的东西。看看你的任务的每一部分,只要有不清楚的地方,就研究那个特定的问题。我如何使用NSXMLParser?如何从数组中显示UITableView中的数据?等

如果你没有花时间真正理解如何解决这个问题,而不是只是复制代码,那么你就会明天又回到另一个问题。

希望这可以帮助你解决这个问题,并帮助你理解如何解决未来的问题。

为了让你开始,我会给你一个或多或少的回答你的问题的链接。

iPhone Tutorial Creating an RSS feed Reader

+0

thx为你帮助,但真的我不专业可以显示我一个代码示例thx bro – djboss 2011-05-22 08:19:09

+0

今天晚上我会提供一些更多的细节。 – CodeGuru 2011-05-23 19:36:13

+0

thx bro真的很好的答案和不错的教程 – djboss 2011-05-27 14:29:08