あなたが何を目指しているのかよくわかりませんが、これらの 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 をファイル (plist ではなく HTML ファイル) に書き込むだけです。
私は通常、メイン キューに html をロードしたくありません。dispatch_async
これをバックグラウンド キューで実行します。しかし、あなたが探しているものを正確に明確にするまで、私は遠くに行くことを躊躇します.
しかし、Web ページからデータを取得する方法を示して、正しい方向に導いてくれることを願っています。
個々の 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];
}
}];