2012-11-20 24 views
1

我的应用程序包含一些需要通过XML文件从Web服务器动态加载的图像。每当在Web服务器的管理控制台中完成更改时,它也应该通过XML文件反映在iPhone应用程序中。我写了XML文件,但不知道如何在iPhone代码中使用。我提到以下链接,如何通过XML文件动态更改iphone应用程序中的图像

how-to-retrieve-data-through-xml-in-iphone-locally-file

dynamically-pulling-images-from-xml-for-iphone-app

how-to-change-the-tabbaritem-images-dynamically-in-iphone-app

retrieving-images-to-iphone-app-through-xml

但所有这些环节都不清楚,我听不懂。请向我建议一种方法来做到这一点。

回答

1

所以我假设你的web服务器可以提供一个XML,其中包含像base64这样的编码格式的图像。那么你需要:

  1. 加载文件。为此,您应该使用NSURLConnection,例如如how-to-make-http-request-from-iphone-and-parse-json-result中所述
  2. 解析XML。您不需要解析JSON,而是需要解析XML,因此首先需要一个XML解析器。 Here is a comparison of XML parsers。然后,您应该访问表示图像的XML元素。这一步取决于您对解析器的选择。
  3. 解码图像。你的元素可能是NSString,你想要它的二进制表示为NSDataNSData有这方面的一些便利功能。例如。对于base64,有dataFromBase64String:构造函数。
  4. 创建图像。也就是,UIImage使用imageWithData:构造函数。
  5. 显示图片。您需要一个UIImageView并将其分配给您的UIImage。设置视图的框架并将其添加到您的首选子视图。

XML也可能提供了获取图像数据的URL。然后你必须做一个新的请求。现在应该清楚,该怎么做。

祝你好运。

+0

我可以理解点1,2,4和5究竟是我想要做什么,但在第3次你提到的解码图像不理解如何做到这一点,你可以详细说明它。感谢您的快速回复 – sathya

+0

图像通常是一个jpeg,它是文件中的二进制数据。如果你想将图像填充到XML中,这是一种常见的做法,那么它必须是文本编码的。最常见的编码是base64。所以图像二进制数据被转换为base64文本。另一种更常见的做法是,如果XML提供了链接,则指向图像的URL。然后,只需像使用XML一样获取它,并且您已经拥有了一个'NSData',您可以将它们放入您的'UIImage'中。 – ilmiacs

+0

太酷了!现在我明白了如何从1分到5分。谢谢你这么多ilmiacs .. – sathya

相关问题