我不太确定您要拍摄什么,但如果您尝试从这些 URL 字符串中提取 HTML,您可能会执行以下操作:
// build path for filename
NSString *docsPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
NSString *filename = [docsPath stringByAppendingPathComponent:@"test.plist"];
// create array of html results
NSMutableArray *htmlResults = [NSMutableArray array];
for (NSString *urlString in b)
{
// get the html for this URL
NSString *html = [NSString stringWithContentsOfURL:[NSURL URLWithString:urlString] encoding:NSUTF8StringEncoding error:nil];
// add the html to our array (or zero length string if it failed)
if (html)
[htmlResults addObject:html];
else
[htmlResults addObject:@""];
}
// save the html results to plist
[htmlResults writeToFile:filename atomically:YES];
几个想法:
根据有多少页面,我不确定我是否对将所有页面加载到 plist 中感到疯狂。我要么
另外,如果我要加载所有页面,考虑到这可能需要一点时间,我可能会有一个进度视图,我会根据我的进度进行更新,这样用户在下载时就不会看到冻结的屏幕正在进行中。
如果您只想检索单个 html 文件,那么将其存储在 plist 中可能没有意义。我只是将 html 写入文件(HTML 文件,而不是 plist)。
我通常不喜欢在主队列中加载 html。我会dispatch_async
在后台队列中执行此操作。但是,在您明确说明您要查找的内容之前,我会犹豫不决。
但希望这会为您指明正确的方向,向您展示如何从网页中检索数据。
如果您想将单个 html 文件保存到某个本地文件(例如从零开始的索引号X.html
在哪里X
),您可以执行以下操作:
// identify the documents folder
NSString *docsPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
// save the html results to local files
[b enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
NSString *html = [NSString stringWithContentsOfURL:[NSURL URLWithString:obj] encoding:NSUTF8StringEncoding error:nil];
if (html)
{
NSString *filename = [docsPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%d.html", idx]];
[html writeToFile:filename atomically:YES encoding:NSUTF8StringEncoding error:nil];
}
}];