我有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和任何内容它链接到的图像?
答案 0 :(得分:1)
你提出的问题绝对没有意义。
URL是指向在线资源位置的指针。在这个上下文中是一个html文件。你不能把一个放到另一个。
我建议你创建一个UIWebView
,将字符串加载到其中,让它渲染并缓存结果。
[webView loadHTMLString:@"data" baseURL:nil];
我相信它需要实际放置在屏幕上才能渲染,所以要使它成为一个看不见的1 X 1像素正方形,它应该没问题。然后当didFinishLoading
开火时。缓存结果
答案 1 :(得分:0)
是的,你可以。您必须自己解析HTML中的链接。真实世界的HTML不符合XML,因此实现目标的快捷方式是将HTML视为文本并使用正则表达式库解析链接。