TFHpple请求没有在后台线程上运行?

时间:2012-10-12 03:50:42

标签: iphone objective-c ios ipad hpple

这在主线程上工作正常,但由于某些原因在后台线程上运行时不起作用。如果您只是注释掉对dispatch_async的调用,那么程序运行正常!

代码:

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不能在后台线程上运行吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

我不知道你的确切问题是什么。但是,请使用NSThread而不是使用dispatch_async。一定要使用

  -[NSObject performSelectorOnMainThread:withObject:waitUntilDone:] 

在主线程上运行(用于Ui交互功能)