这在主线程上工作正常,但由于某种原因在后台线程上运行时不起作用。如果您只是注释掉对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 不会在后台线程上运行吗?
谢谢!
我不知道
你的确切问题是什么。但是,请使用 NSThread 而不是使用 dispatch_async。确保使用
-[NSObject performSelectorOnMainThread:withObject:waitUntilDone:]
在主线程上运行(用于 Ui 交互功能)