2012-10-12 1 views
0

이 주 스레드에서 잘 작동하지만 배경 스레드에서 실행할 때 어떤 이유로 작동하지 않습니다. 프로그램이 잘 작동하는 것보다 dispatch_async에 대한 호출을 주석 처리하면됩니다.백그라운드 스레드에서 TFHpple 요청이 실행되지 않습니까?

코드 :

NSString *requestString = [NSString stringWithFormat:@"http://www.songlyrics.com/index.php?section=search&searchW=%@+%@&submit=Search",actualSongName,actualSongArtist]; 
     NSLog(@"0"); 
     TFHpple *requestParser = [TFHpple hppleWithHTMLData:[NSData dataWithContentsOfURL:[NSURL URLWithString:requestString]]]; 
     NSLog(@"1"); 
     NSString *requestedURLXPathQuery = @"//a"; 
     NSArray *requestedStringsNodes = [requestParser searchWithXPathQuery:requestedURLXPathQuery]; 
     NSLog(@"2"); 

이 기록됩니다 것입니다 :

2012-10-11 21:39:05.636 SuperViewer[6612:110b] 0 
2012-10-11 21:39:05.651 SuperViewer[6612:907] Unable to parse. 
2012-10-11 21:39:06.520 SuperViewer[6612:110b] 1 
2012-10-11 21:39:06.565 SuperViewer[6612:110b] 2 

이 모두 백그라운드 스레드에서 실행됩니다. 또한 "requestString"var 및 벌금을 기록했습니다.

어떤 아이디어가 문제입니까? 백그라운드 스레드에서 Hpple이 실행되지 않습니까?

감사합니다.

답변

0

정확한 문제가 무엇인지 알 수 없습니다. 그러나 dispatch_async를 사용하는 대신 NSThread을 사용하십시오. 반드시 메인 스레드에서이 작동하지 않습니다

+0

(UI 대화 형 기능을) 실행

-[NSObject performSelectorOnMainThread:withObject:waitUntilDone:] 

을 사용합니다. 정확한 오류가 발생합니다. – Shredder2794

+0

또는이 블록을 사용하려고 시도하십시오. http://pastebin.com/KNMYjZpp –

+0

이것은 원래 제가 한 일입니다 .... 그래서 헛소리로 이것도 작동하지 않습니다. 다른 아이디어? – Shredder2794

관련 문제