objective-c - 收到服务器响应后解析 UITableViewCell 中的 xml

标签 objective-c cocoa-touch ios uitableview nsxmlparser

你好 friend ,我想问一下如何返回 Conn.xmlParser 因为 connectionDidFinishLoading 是无效的,我需要这个结果才能在 UITableView 中进行解析,我如何使用 Conn.mlParser 的值?

需要帮助。

 -(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];
    }

最佳答案

确保您的代理也实现了 NSXMLParserDelegate 协议(protocol)。然后就可以调用didStartElement、didEndElement、didEndDocument等

我通常创建一个 NSArray(或 NSMutableArray),然后使用上面提到的 NSXMLParser 方法由您在 webdata 中检索的类型的对象填充。也将此数组用作 UITableView 的 cellForRowAtIndexPath 中的数据源。

当您到达 didEndDocument 时,只需调用 [myUITableView reload] 来更新 TableView 。 (除非 tableview 和 connection delegate 在两个不同的类中,否则您应该使用 KVO 让 tableviewdelegate 知道数据已被检索)。

跟进:

而不是仅仅给你举个例子(网络上已经有好几个),这只会给你留下更多的问题,我将尝试解释如果你要去的话你应该理解的是什么成为一名成功的 iOS 开发者。

如果下面的步骤对您来说太难了,我建议您退后一步,尝试慢慢地一次一个地解决问题。如果您仍未取得进展,请购买 Mark、Nutting 和 LaMarche 编写的 Beginning iPhone 4 Development 的副本,然后在您更好地了解 Objective-C 和 iPhone 编程的基本过程后再回来阅读此书。

为了实现你的目标:

首先,您应该问问自己您想要完成什么。

您正在从网站(也许是网络服务?)获取数据,并且您想要解码(解析)该信息并将其显示在表格 View 中。正确吗?

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

  1. 根据您要从网站接收的数据类型创建一个单独的类。如果您正在获取指定颜色、年份、型号的汽车对象,那么您应该创建一个具有颜色、年份和型号属性的 Car 类。

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

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

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

其次,您应该寻找您可以研究的示例代码来完成您想要完成的工作,并阅读 Apple 的文档以牢牢掌握创建您想要的结果所必须发生的事情。查看任务的每个部分,如果有不清楚的地方,请研究该特定问题。我如何使用 NSXMLParser?如何在 UITableView 中显示数组中的数据?等

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

希望这能帮助您解决这个问题,并帮助您了解如何解决 future 的问题。

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

iPhone Tutorial Creating an RSS feed Reader

关于objective-c - 收到服务器响应后解析 UITableViewCell 中的 xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6071262/

相关文章:

ios - 如何在同一函数中再次调用部分代码?

ios - 为什么 AFNetworking 在第一次请求时挂起?

iphone - Storyboard+模态转场+内存

objective-c - 在 UITableViewCell 中点击识别 UIImageView

ios - ios内购可以使用第三方支付网关吗?

导航栏中不出现小延迟后添加的 iOS 搜索栏

ios - 部分填充形状的颜色

iphone - 在类之间传递数据/异步请求/iOS

ios - 如何以编程方式确定 iOS 中的默认电子邮件帐户/地址?

iOS:如何从文档目录中删除所有具有特定扩展名的现有文件?