iPhone App - RSS feed和loadHTMLString的问题:baseURL:

时间:2013-07-23 17:24:49

标签: iphone ios objective-c xml rss

我正在解析RSS提要(以XML格式提供)并将其加载到UIWebView中 - 这非常有效。 问题在于XML中偶尔出现的<img>标签 - 他们调用的图像没有显示出来(虽然我确实得到了一个占位符边框,它们应该出现在哪里。)
/> 问题是,那些<img>代码只包含部分路径,没有域名 - 例如:

<img src="/news-media/images/football/6.jpg" />

要解决此问题,我尝试在baseURL参数中指定默认域名:

NSURL *baseURL = [NSURL fileURLWithPath:@"http://www.myDomain.com"];
[theWebView loadHTMLString:tempHtmlString baseURL:baseURL];

这不起作用 - HTML仍然正常加载,但图像没有显示。然而,这确实消除了我之前在图像上获得的“破碎图像”图标(当网页试图加载丢失的图像时通常会得到的那种图标。)此外,我有时会收到“收到内存警告”消息- 但不总是。加载包含多张照片的页面时似乎会发生这种情况。但即使页面只有一张照片而我没有收到“记忆”警告,照片本身也不会被加载。

任何想法该怎么办?我是否必须手动将基本网址附加到<img>代码的所有匹配项?

1 个答案:

答案 0 :(得分:1)

您正在将基本URL创建为文件URL(即设备上本地文件的URL)。您希望URL引用远程服务器。试试这个:

NSURL *baseURL = [NSURL URLWithString:@"http://www.myDomain.com"];
[theWebView loadHTMLString:tempHtmlString baseURL:baseURL];