0

ウェブサイトへのリクエストを介して情報をダウンロードし、HTMLを返し、このデータを解析してアプリ情報を取得するアプリを実行しています。私が使用しているこのデータをダウンロードするには、リクエストが最後に必要とするすべてのパラメーターを含むURLを使用します。

NSData *data = [NSData dataWithContentsOfURL:url];

NSString* htmlString;
htmlString = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
[self parserHTML:htmlString];  // here I fill a NSArray with the info parsed
[self searchSomething:htmlString];  // continue filling the NSArray

...

データをダウンロードしてHTMLをパーサーするタスクには長い時間がかかります。

これを高速化するにはどうすればよいですか?グランドセントラルディスパッチ?もしそうなら、私はこれを使用していて、NSSArrayが空であるために機能しないため、どのように使用できますか?

dispatch_queue_t downloadQueue = dispatch_queue_create("pharmacy downloader", NULL);
dispatch_async(downloadQueue, ^{ 
    NSData *data = [NSData dataWithContentsOfURL:urlReal];

    NSString* htmlString;
    htmlString = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
    [self parserHTML:htmlString];  // here I fill a NSArray with the info parsed
    [self searchSomething:htmlString];  // continue filling the NSArray
});
dispatch_release(downloadQueue);

GCDを使用しない場合は機能します。何が問題になるのでしょうか?

ご協力いただきありがとうございます。私は完全に失われました!!! :S

4

1 に答える 1

0

代わりにNSURLDownloadまたはNSURLConnectionを使用してください。

サンプル コードについては、QuickLookDownloaderを参照してください。

于 2012-04-06T10:50:53.417 に答える