2012-04-06 4 views
0

웹 사이트에 요청을 통해 정보를 다운로드하는 응용 프로그램을 만들고있어, HTML 및 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

+0

을 살펴 수있는 몇 가지 예제 코드에 대한

, 당신은 구문 분석하는 동안 충전된다? 이것은 객체의 속성입니까? 어쩌면 구문 분석이 그 시점에 완료되지 않았을 수도 있습니다. –

답변