从包含HTML的NSString创建本地NSURL?

时间:2015-01-14 11:21:15

标签: ios objective-c nsstring nsurl

我有NSString包含一些HTML。我正在尝试预加载该HTML,包括其中的任何外部图像链接。所以,澄清一下:我只有HTML,我需要基本上加载它,抓取它的图像,并缓存这些数据。

我可以使用以下代码在实时网站上执行此操作:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *filePath = [NSString stringWithFormat:@"%@/%@", [paths objectAtIndex:0], @"index.html"];
NSURL *url = [NSURL URLWithString:@"http://www.google.co.uk"];
NSData *urlData = [NSData dataWithContentsOfURL:url];
[urlData writeToFile:filePath atomically:YES];

但如果没有NSURL,这将无效。我想知道我是否可以从这个HTML字符串中以某种方式制作NSURL,并在此处使用URLWithString:方法替换它。

所以,问题:我可以在NSString中使用一些本地HTML并将其转换为NSURL,以便我可以将其提供给上面的代码,并保存HTML和任何内容它链接到的图像?

2 个答案:

答案 0 :(得分:1)

你提出的问题绝对没有意义。

URL是指向在线资源位置的指针。在这个上下文中是一个html文件。你不能把一个放到另一个。

我建议你创建一个UIWebView,将字符串加载到其中,让它渲染并缓存结果。

[webView loadHTMLString:@"data" baseURL:nil];

我相信它需要实际放置在屏幕上才能渲染,所以要使它成为一个看不见的1 X 1像素正方形,它应该没问题。然后当didFinishLoading开火时。缓存结果

答案 1 :(得分:0)

是的,你可以。您必须自己解析HTML中的链接。真实世界的HTML不符合XML,因此实现目标的快捷方式是将HTML视为文本并使用正则表达式库解析链接。