我制作了一个iphone应用程序,通过xml保存从远程服务器检索数据。我想在XMl中检索图像,并且必须在我存储在服务器上的iphone应用程序中显示它们。请帮助如何实现这一目标。
答案 0 :(得分:3)
在我的应用程序中,我通过Xml发送和接收图像。为了促进这一点,我使用base64编码对图像进行编码/解码。 MY编码/解码方法有2个Objective-c类别,1个用于NSData,1个用于NSString。您可以在相应的数据类型上调用这些方法,我在下面列出了示例。方法是[NSData base64Encoding]和[NSString base64Decoding]。
发送到服务器时......
NSLog(@"Compressing Image: JPEG 80%");
NSData *imgData = UIImageJPEGRepresentation(scaledImage, 0.8f);
NSString *b64String = [imgData base64Encoding];
我的“b64String”变量现在有一个base64编码的图像字符串表示。您现在可以将其包装在Xml中,并使用普通的NSURLConnection将其发送到服务器。
从服务器接收时...(确保从服务器发送base64编码的文本)
你将进行正常的Xml解析,这里我的“value”变量保存来自服务器的base64字符串。
NSData *imgData = [value base64Decoding];
UIImage *image = [[UIImage alloc] initWithData:imgData];
你应该能够在Objective-C中查找一些常见的base64编码/解码算法,请告诉我你是否希望我发布我的方法(它们有点长,所以我在这里反省了)。
答案 1 :(得分:2)
我正在编写一个有这个问题的应用程序 - 我已经通过在xml中为图像添加url而不是嵌入图像数据本身来解决它。例如,我的xml看起来像这样:
<images>
<image url="http://www.example.com/images/12345.jpg" />
<image url="http://www.example.com/images/67890.jpg" />
</images>
当我解析xml时,当我点击&lt;图像&gt; tag我将url存储在NSMutalbeArray中。当解析xml时,我遍历数组并使用NSURLConnection获取每个图像。
萨姆
PS我在这个页面上研究了如何使用NSURLConnection:https://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/URLLoadingSystem/Tasks/UsingNSURLConnection.html