ウェブサイトへのリクエストを介して情報をダウンロードし、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